Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
cómo enmascarar/ocultar la dirección de correo electrónico en C#

tengo un problema, tengo que aplicar enmascarar/ocultar parte de la dirección de correo electrónico en C#. ejemplo

 jhon@abc.com==> jh**n@abc.com bigjhon@abc.com==> bi****n@abc.com brotherhood@abc.com==>br*******od@abc.com

tengo este código pero está dando una excepción para algunos correos electrónicos. "El índice esta fuera de los límites de la matriz."

 for (int i = 0; i < eml.Length; i++) { int j = i == (eml.Length - 1) ? 0 : 1; cc = eml[i].ToString(); if (i <= 1) { dispeml += cc; } else if (eml[i + (j + k)].ToString() == "@") { dispeml += cc; k = 0; fl = 1; } else if (eml[i + j].ToString() == "@") { dispeml += cc; fl = 1; } else if (fl == 1) { dispeml += cc; } else { dispeml += "*"; } }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Aquí hay un enfoque para resolver esto con Regex

 string input = "jhon@abc.com"; string pattern = @"(?<=[\w]{1})[\w-\._\+%]*(?=[\w]{1}@)"; string result = Regex.Replace(input, pattern, m => new string('*', m.Length)); //j**n@abc.com

Explicación :

(?<=[\w]{1}) el nombre debe comenzar con 1 carácter de palabra

[\w-\._\+%]* la pieza de repuesto puede contener 0-n caracteres de palabra, incluido -_.+%

(?=[\w]{1}@) el nombre debe terminar con un carácter de palabra seguido de una @

Dependiendo de la cantidad de caracteres que desee que permanezcan sin cambios, puede cambiar {1} a {2} o algo más al principio o al final.

over 4 years ago · Santiago Trujillo Denunciar

0

Si siempre desea enmascarar algo entre el primer carácter y el último carácter antes de @ con un número fijo de caracteres enmascarados, puede usar lo siguiente

 var email="abcdef@ghij.com"; var maskedEmail = string.Format("{0}****{1}", email[0], email.Substring(email.IndexOf('@')-1));

Puede modificar la línea anterior para su requerimiento.

La línea de arriba te dará el resultado "a****f@ghij.com"

Tenga en cuenta que enmascarar el correo electrónico siempre con un número fijo de caracteres hará que sea difícil adivinar el correo electrónico y es un poco más seguro.

ej: ab@c.com

después de la máscara: a****b@c.com

over 4 years ago · Santiago Trujillo Denunciar

0

No puedo ver dónde se inicializa su variable k en su fragmento de código. Si tuviera que hacer una puñalada salvaje en cuanto a por qué está obteniendo una excepción de índice fuera de los límites, esa sería mi puñalada.

Aunque diría que podrías lograr algo muy similar a lo que estás haciendo usando Regex. Lo hice así:

 public string ObfuscateEmail(string email) { var displayCase = email; var partToBeObfuscated = Regex.Match(displayCase, @"[^@]*").Value; if (partToBeObfuscated.Length - 3 > 0) { var obfuscation = ""; for (var i = 0; i < partToBeObfuscated.Length - 3; i++) obfuscation += "*"; displayCase = String.Format("{0}{1}{2}{3}", displayCase[0], displayCase[1], obfuscation, displayCase.Substring(partToBeObfuscated.Length - 1)); } else if (partToBeObfuscated.Length - 3 == 0) { displayCase = String.Format("{0}*{1}", displayCase[0], displayCase.Substring(2)); } return displayCase; }

Aquí hay un violín de todos sus casos de prueba proporcionados que pasan bastante cerca de lo que estaba describiendo https://dotnetfiddle.net/fU2RUo

[EDITAR] Mi código no intenta ofuscar los correos electrónicos cuyas direcciones antes de la @ tienen menos de 3 caracteres, si este es un requisito, deberá modificar el código, pero no pensé que fuera un caso muy realista. para construir un caso para.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda