C#中求SHA224哈希值

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;

}

原文地址:https://www.cnblogs.com/cxun/p/771387.html