安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。
sha1_SHA1 -术语概念
位,字节和字
SHA1始终把消息当成一个位(bit)字符串来处理。本文中,一个字(Word)是32位,而一个字节(Byte)是8位。比如,字符串“abc”可以被转换成一个位字符串:011000010110001001100011。它也可以被表示成16进制字符串:0x616263.运算符和符号
SHA1下面的逻辑运算符都被运用于“字”(Word)
X&Y=X,Y逻辑与
X|Y=X,Y逻辑或
X^Y=X,Y逻辑异或
~X=X逻辑取反
X+Y定义如下:
字X和Y代表两个整数x和y,其中0<=x<2^32且0<=y<2^32.令整数z=(x+y)mod2^32.这时候0<=z<2^32.将z转换成字Z,那么就是Z=X+Y.
逻辑左移位(循环移位)操作符Sn(X):
X是一个字,n是一个整数,0<=n<=32。
Sn(X)=(X<<n)OR(X>>32-n)
sha1_SHA1 -算法描述
在SHA1算法中,我们必须把原始消息(字符串,文件等)转换成位字符串。SHA1算法只接受位作为输入。假设我们对字符串“abc”产生消息摘要。首先,我们将它转换成位字符串如下:011000010110001001100011