【发布时间】:2011-09-25 22:44:17
【问题描述】:
例如,这个加密函数可以称为实用程序?
public static string HashText(string text)
{
byte[] encodedBytes;
using (var md5 = new MD5CryptoServiceProvider())
{
var originalBytes = Encoding.UTF8.GetBytes(text);
encodedBytes = md5.ComputeHash(originalBytes);
}
return Encode(encodedBytes);
}
而这个其他函数将是一个 Helper ?
public static string Encode(byte[] byteArray)
{
if (byteArray == null || byteArray.Length == 0)
return "";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < byteArray.Length; i++)
{
sb.Append(byteArray[i].ToString("x2"));
}
return sb.ToString();
}
您能否提供任何简单的示例来说明何时应该将某些东西变成方法的扩展?
【问题讨论】:
-
不要使用 MD5
-
另外,不要使用
Default编码。如果你在另一台机器上运行你的代码,你可能不匹配之前的哈希。使用固定的东西,比如 UTF8。 -
另外,不要将名称
Encrypt用于生成哈希的方法。 -
期待阅读有关函数名称是否与其相关的实际问题的回复。
-
@Guapo,我什至无法说出问题的真正含义。