-

哈希值
【定义】
哈希算法
将任意长度的二进制值映射为固定长度的较小二进制值
,
这个小的二进
制值称为哈希值。哈希值是一段数据唯一且极其
紧凑的数值表示形式。如果散列一段
明文而且哪怕只更改该段落的一个字母,随后的哈希
都将产生不同的值。要找到散列
为同一个值的两个不同的输入,在计算上是不可能的。<
/p>
消息身份验证代码
(MAC)
哈希函数通常与数字签名一起用于对数据进行签名,
而消息检测代码
(MDC)
哈希函数则用于数据完整性。
【例如】
小红和小明可按下面的方式使用哈希函数以确保数据完整性
:
如果小红对小明
编写一条消息并创建该消息的哈希,
则小明可以在稍后散列该消息并将他的哈希与原
始哈希进行比较。
如果两个哈希值相同,
则该消息没有被更改;
但
是,
如果值不相同,
则该消息在小红编写它之后已被更改。为了
使此系统运行,小红必须对除小明外的所
有人保密原始的哈希值。
【相关类】
Framework
提供以下实现数字签名算法的类:
HMACSHA1
MACTripleDES
MD5CryptoServiceProvider
SHA1Managed
SHA256Managed
SHA384Managed
SHA512Managed
【随机数生成】
随机数生成是许多加密操作不可分
割的组成部分。例如,加密密钥需要尽可能地
随机,以便使生成的密钥很难再现。加密随
机数生成器必须生成无法以计算方法推算
出(低于
p
<
.05
的概率)的输出;即,任何推算下一个输出位的方法不得比随机
猜测具有更高的成功
概率。
.NET
Framework
中的类使用随机数生成器生成加密密
钥。
RNGCryptoServiceProvider
是随机数生成器算法的实现。
【哈希值在电驴(
eMule
)中的应用】
HASH
是根据文件的内容的数据通过逻辑运算得到的数值
,
不同的文件
(
即使是
相同的文件名
)
得到的
HASH
值是不同的
,
所以
HASH
值就成了每一个文件在电驴
(
e
Mule
)里的身份证
.
不同
HASH
值的文件在电驴(
eMule
)里被认为是不同的文件
,
相同的
HASH
值
的文件的内
容肯定是完全相同
(
即使文件名不同
)
.