前2篇文章也提到加密的问题,也可以使用Hash算法来计算输入的密码字符串,这样就的字符串就几乎不可能破解了。实现的方式将输入字符串转换为字节数组,再计算字节数组的哈希值,存储Hash值。
实现函数如下:
/// <summary>
/// Generate hashed string
/// </summary>
/// <param name="dataString">String for hashing</param>
/// <returns>Return hashed string</returns>
private static string ApplyHash(string dataString)
{
byte[] data = ASCIIEncoding.Unicode.GetBytes(dataString);
byte[] result;
SHA512 shaM = new SHA512Managed();
result = shaM.ComputeHash(data);
return ASCIIEncoding.Unicode.GetString(result);
}
测试代码如下:
string ps = "TestPassword123";
string hasPs = ApplyHash(ps);
Console.WriteLine(hasPs);
输出: 筵牵Რ췈ꚻ₪Ⴠ粬뼛雘豝컘ᰲಕ㷸逼卮�ಋ뼥逼蹸ুዸ䚕扭Ṳ嶩ͭ蔾爄
这样的字符串,是无法破解密码的。