C#哈希

我是C#的新手

  1. 我如何使用C#散列文件
  2. 什么是可用的? (md5,crc,sha1等)
  3. 我应该inheritance一个接口吗?

基本上我想校验多个文件并将其存储在数据库中,同时使用我自己的两个校验和/哈希值。

1.)如何使用C#散列文件?

您可以在System.Security.Cryptography下使用.NET类

2.)什么是可用的?

  • KeyedHashAlgorithm
  • MD5
  • RIPEMD160
  • SHA1
  • SHA256
  • SHA3​​84
  • 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这样的好的哈希函数。