C#中求SHA224哈希值
C#里提供了许多开发库,包括了有关密码学需要用到的算法。今天帮别人写了个很简单的小程序,这里让需要的人参考参考:
SHA224是SHA256结果中的前28字节的内容。
using System.Security.Cryptography;
//--------------------------------------------------
// Desc: 用来计算 SHA224 哈希算法
// Para: src -- 要被哈希散列的字符串
// Retn: 计算出来的 224 位哈希值(0101数字)
//--------------------------------------------------
public string getSHA224(string src)
{
SHA256 sha = new SHA256Managed(); // 用来计算 SHA256 哈希值
UTF8Encoding uen = new UTF8Encoding(); // 用来把char[]转换成byte[]
byte[] bytestr = uen.GetBytes(src.ToCharArray());
sha.ComputeHash(bytestr); // 计算哈希值
String sha224 = "";
for (int i = 0; i < 28; ++i)
{
int dec = int.Parse(sha.Hash.GetValue(i).ToString()); // 十进制
String bin = Convert.ToString(dec, 2).PadLeft(8, '0'); // 转成二进制数,是8位的,不足8位前面补0
sha224 += bin;
}
return sha224;
}