我想从电子邮件中隐藏一些字符,如Sha***aj@gmail.com
本文关键字:Sha 字符 aj@gmail com 电子邮件 隐藏 | 更新日期: 2023-09-27 18:11:49
我开发了一个应用程序,它是基于用户的应用程序。在这个应用程序中,如果用户忘记了他的密码,那么用户只能通过他的电子邮件id重置他的密码,如果用户不记得他的电子邮件id,这是与他的帐户相关联,在那个时候,我想检索密码在一个社会安全号码,如sha***aj@gmail.com。我怎么能做到这一点,请帮助我与这个问题,将不胜感激。谢谢你。
我已经得到了这个代码从堆栈超过流量,但它不符合我的要求。只适用于电话号码,不适用于电子邮件
public static string GetMaskedEmail(string number)
{
if (String.IsNullOrEmpty(number))
return string.Empty;
if (number.Length <= 12)
return number;
string last12 = number.Substring(number.Length - 12, 12);
var maskedChars = new StringBuilder();
for (int i = 0; i < number.Length - 12; i++)
{
maskedChars.Append(number[i] == '-' ? "-" : "#");
}
return maskedChars + last12;
}
今晚工作有点慢,所以我启动了Xamarin Studio,为你制作了这个。这不应该作为最佳编码实践的一个例子,真的一点也不。
虽然这将提供一个功能示例,从中您可以采取并构建到您自己的方法,并希望在此过程中学习。一个很好的参考资源,如果你在阅读任何代码时迷路了,是MSDN,如果你还没有访问过,我建议你这样做,并将其收藏起来以备将来使用。
using System;
namespace EmailHash
{
class MainClass
{
public static void Main (string[] args)
{
if (args.Length <= 0)
{
Console.WriteLine ("No values were passed to application.");
return;
}
string email = args[0];
int indexOfAt = email.IndexOf ("@");
if (indexOfAt == -1)
{
Console.WriteLine("Unable to find '@' symbol within email.");
return;
}
int indexStart = 3;
int indexEnd = indexOfAt - 2;
if (indexStart >= indexEnd)
{
Console.WriteLine("Not enough characters in email to mask value.");
return;
}
string hashedEmail = email.Replace(email.Substring(indexStart, indexEnd - indexStart), "***");
Console.WriteLine("Original email: " + email);
Console.WriteLine("Hashed email: " + hashedEmail);
return;
}
}
}