首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求教一个关于.net加密算法的有关问题。SHA512

2013-09-15 
求教一个关于.net加密算法的问题。SHA512网上看到的跟自己写的机密方式都用过了。为什么加密出来的结果不一

求教一个关于.net加密算法的问题。SHA512
网上看到的跟自己写的机密方式都用过了。为什么加密出来的结果不一样?


//方法一:
        public static string GETSHA512Encrypt(string strDigestStr)
        {
            byte[] aryEncodedData;
            SHA512Managed inDigest = new SHA512Managed();
            UTF8Encoding inUTF8 = new UTF8Encoding();
            aryEncodedData = inUTF8.GetBytes(strDigestStr);
            aryEncodedData = inDigest.ComputeHash(aryEncodedData);
            String tmp = "";
            for (int nLoop = 0; nLoop < aryEncodedData.Length; nLoop++)
                tmp += aryEncodedData[nLoop].ToString("X2");

            return tmp;
        }

//方法二:
        public static string SHA512Encrypt(string str)
        {
            System.Security.Cryptography.SHA512 s512 = new System.Security.Cryptography.SHA512Managed();
            byte[] byte1;
            byte1 = s512.ComputeHash(Encoding.Default.GetBytes(str));
            s512.Clear();
            return Convert.ToBase64String(byte1);

        }
//方法三: 就在一上面 把  tmp += aryEncodedData[nLoop].ToString("X2"); 改成
tmp += aryEncodedData[nLoop].ToString(""); 




为什么同样加密 :JhonLocke234234‐3223423‐676778‐5656 
的出来的结果 都不一样 。 我想要的是“948914afc66ddadb2e7f70b80c9ecd07f5b4d7aa181ae50bb0ba3487027cd1b07cdd90c93c1fb0d2022033076d54019d58b45f82149c2f25fee2033312a0a228”

为什么呢 求大神解答。
SHA512

12 C# 加密算法
[解决办法]

public static string GetSHA512Password(string password)
{
    byte[] bytes = Encoding.UTF7.GetBytes(password);
    byte[] result;
    SHA512 shaM = new SHA512Managed();
    result = shaM.ComputeHash(bytes);
    StringBuilder sb = new StringBuilder();
    foreach (byte num in result)
    {
        sb.AppendFormat("{0:x2}", num);
    }
    return sb.ToString();
}


方法二不对吧

热点排行