日期:2014-05-16  浏览次数:20584 次

问一个关于HMACSHA256加密的问题。。。。知道加密的来回答一上。。。。。。。速度。。答了散了走人。。。。。。。。

            byte[] SHA256Data = Encoding.UTF8.GetBytes("12sa这个测试是s34");
            HMACSHA256 Sha256 = new HMACSHA256();
            byte[] Result = Sha256.ComputeHash(SHA256Data);
            Console.WriteLine(Convert.ToBase64String(Result));


问题一,只有这么多分。。别嫌啊。。

问题二,Convert.ToBase64String(Result)转化输出估计有汉字,所以输出都乱码,能不能像sha1那样,输入纯字母和数字组合的密文啊。。

问题三,如果不在new HMACSHA256();中指定,密钥,每次。。加密得到的密文都不一样。。昨办。。
------解决方案--------------------
要加密的话应该是密码吧,密码会有中文?

我的代码是下面这种

 byte[] bytes;
            SHA256 sha256 = new SHA256Managed();
            bytes = sha256.ComputeHash(new UTF8Encoding().GetBytes(str));
            bytes = sha256.Hash;
            sha256.Clear();
            return BitConverter.ToString(bytes).Replace("-", "").ToLower();