创建散列码的方法非常多,即使是同一种散列算法也可以通过许多类来实现,前面章节介绍的算一种,下面再介绍一种。以 SHA1 为例:
string plaintext = "明文";
byte[] srcBuffer = System.Text.Encoding.UTF8.GetBytes(plaintext);
System.Security.Cryptography.HashAlgorithm hash = System.Security.Cryptography.HashAlgorithm.Create("SHA1"); //将参数换成“MD5”,则执行 MD5 加密。不区分大小写。
byte[] destBuffer = hash.ComputeHash(srcBuffer);
string hashedText = System.BitConverter.ToString(destBuffer).Replace("-", "");
用的是HashAlgorithm
这个类,其名称空间是System.Security.Cryptography
。只用了它的两个方法:Create
和ComputeHash
,ComputeHash
返回的是byte[]
,为了显示这里转换成字符串,转换之后,它和前一节讲的 SHA1 结果是一样的。
也可以用SHA1Managed
和SHA1CryptoServiceProvider
,但是我们推荐用本文的方法,因为它不涉及类名,要更改算法,只需要更改Create
的字符串参数即可。