HASH是根据文件的内容的数据通过逻辑运算得到的数值,不同的文件(即使是相同的文件名)得到的HASH值是不同的,所以HASH值就成了每一个文件在电驴(eMule)里的身份证.
不同HASH值的文件在电驴(eMule)里被认为是不同的文件,相同的HASH值的文件的内容肯定是完全相同(即使文件名不同).
HASH值还有文件校验的功能,相当于文件的校验码.所以还可以用来检查文件下载是否正确(所以电驴(eMule)下载完毕时,都会再HASH文件一遍,检查文件是否出错)。
Framework提供以下实现数字签名算法的类:
HMACSHA1
MACTripleDES
MD5CryptoServiceProvider
SHA1Managed
SHA256Managed
SHA384Managed
SHA512Managed
随机数生成是许多加密操作不可分割的组成部分。例如,加密密钥需要尽可能地随机,以便使生成的密钥很难再现。加密随机数生成器必须生成无法以计算方法推算出(低于p<.05的概率)的输出;即,任何推算下一个输出位的方法不得比随机猜测具有更高的成功概率。.NETFramework中的类使用随机数生成器生成加密密钥。
RNGCryptoServiceProvider是随机数生成器算法的实现。
小红和小明可按上面的方式使用哈希函数以确保数据完整性:如果小红对小明编写一条消息并创建该消息的哈希,则小明可以在稍后散列该消息并将他的哈希与原始哈希进行比较。如果两个哈希值相同,则该消息没有被更改;但是,如果值不相同,则该消息在小红编写它之后已被更改。为了使此系统运行,小红必须对除小明外的所有人保密原始的哈希值。