博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# SHA
阅读量:4614 次
发布时间:2019-06-09

本文共 2740 字,大约阅读时间需要 9 分钟。

没有sha224

要注意每次计算完之后要把文件释放掉,再重新打开

否则会计算出错

static class MySHA    {        public static string[] GetSHAHash(string Message)        {                            string[] sha = new string[4];            try            {                SHA1 sha1 = new SHA1CryptoServiceProvider();                SHA256 sha256 = new SHA256CryptoServiceProvider();                SHA384 sha384 = new SHA384CryptoServiceProvider();                SHA512 sha512 = new SHA512CryptoServiceProvider();                byte[] sha_in = UTF8Encoding.Default.GetBytes(Message);                byte[] sha1_out = sha1.ComputeHash(sha_in);                byte[] sha256_out = sha256.ComputeHash(sha_in);                byte[] sha384_out = sha384.ComputeHash(sha_in);                byte[] sha512_out = sha512.ComputeHash(sha_in);                sha[0] = BitConverter.ToString(sha1_out).Replace("-", "");                sha[1] = BitConverter.ToString(sha256_out).Replace("-", "");                sha[2] = BitConverter.ToString(sha384_out).Replace("-", "");                sha[3] = BitConverter.ToString(sha512_out).Replace("-", "");                return sha;            }            catch { MessageBox.Show("校验失败");return sha; }        }        public static string[] GetSHAHashFromFile(string fileName)        {            string[] sha = new string[4];            try            {                                SHA1 sha1 = new SHA1CryptoServiceProvider();                SHA256 sha256 = new SHA256CryptoServiceProvider();                SHA384 sha384 = new SHA384CryptoServiceProvider();                SHA512 sha512 = new SHA512CryptoServiceProvider();                FileStream file = new FileStream(fileName, FileMode.Open);                byte[] sha1_out = sha1.ComputeHash(file);                file.Close();                file = new FileStream(fileName, FileMode.Open);                byte[] sha256_out = sha256.ComputeHash(file);                file.Close();                file = new FileStream(fileName, FileMode.Open);                byte[] sha384_out = sha384.ComputeHash(file);                file.Close();                file = new FileStream(fileName, FileMode.Open);                byte[] sha512_out = sha512.ComputeHash(file);                file.Close();                sha[0] = BitConverter.ToString(sha1_out).Replace("-", "");                sha[1] = BitConverter.ToString(sha256_out).Replace("-", "");                sha[2] = BitConverter.ToString(sha384_out).Replace("-", "");                sha[3] = BitConverter.ToString(sha512_out).Replace("-", "");                return sha;            }            catch              { MessageBox.Show("校验失败"); return sha; }                      }        }
MySHA

 

转载于:https://www.cnblogs.com/xzhblogs/p/5799070.html

你可能感兴趣的文章
剑指offer31----栈的压入、弹出序列
查看>>
读取文件,按行输出
查看>>
UVA 11825 Hackers' Crackdown - 状压dp
查看>>
正则表达式
查看>>
向PHP发送HTTP-Get请求
查看>>
本周作业
查看>>
Python中的 matplotlib(二)随机漫步
查看>>
rsyslog 传输日志
查看>>
14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
查看>>
apache性能优化
查看>>
UNDO 100%
查看>>
MaReduce理论
查看>>
CentOS7安装RabbitMQ
查看>>
ubuntu下USB口插入USB转TTL查看串口号
查看>>
mysql乐观锁和悲观锁
查看>>
Zend引擎探索 之 PHP中前置递增不返回左值
查看>>
将字符串中不同字符的个数打印出来
查看>>
HDOJ--1869--六度分离(用三种算法写的,希望能比較出来他们之间的差别)
查看>>
java第三次上机
查看>>
android Javah生成JNI头文件
查看>>