C#哈希
我是C#的新手
- 我如何使用C#散列文件
- 什么是可用的? (md5,crc,sha1等)
- 我应该inheritance一个接口吗?
基本上我想校验多个文件并将其存储在数据库中,同时使用我自己的两个校验和/哈希值。
1.)如何使用C#散列文件?
您可以在System.Security.Cryptography下使用.NET类
2.)什么是可用的?
- KeyedHashAlgorithm
- MD5
- RIPEMD160
- SHA1
- SHA256
- SHA384
- SHA512
3.)我应该inheritance一个接口吗?
不,你不必。 看看HashAlgorithm.Create(…)
片段
byte[] result; SHA1 sha = new SHA1CryptoServiceProvider(); using(FileStream fs = File.OpenRead(@"file.txt")) { result = sha.ComputeHash(fs); }
另请参见SHA1CryptoServiceProvider或MD5CryptoServiceProvider 。
CRC不可用 – 创建自己的CRC效率更高。
你想用哈希来实现什么? 如果您试图确保没有人恶意更改文件, 请不要实现自己的校验和或哈希。 你可能会犯一些错误,有人可以篡改文件并使校验和仍然匹配。 使用像SHA-256这样的好的哈希函数。