Hash算法进行签名验签
Hash算法
哈希算法(Hash 算法,Hash 算式,散列算法,消息摘要算法) :将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。
性质
单向性。即给定一个输入数,容易计算出它的哈希值,但是已知一个哈希值根据同样的算法不能得到原输入数。
弱抗碰撞性。即给定一个输入数,要找到另一个得到给定数的哈希值,在使用同一种方法时,在计算上不可行。
强抗碰撞性。即对于任意两个不同的输入数,根据同样的算法计算出相同的哈希值,在计算上不可行。
典型的哈希算法: 包括 MD2、MD4、MD5 和 SHA-1。哈希算法也称为“哈希函数”。
SHA
其对长度不超过264二进制位的消息产生160位的消息摘要输出。
SHA: 是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一。
过程: 接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
散列函数值 可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。
信息摘要
它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。
公钥和私钥
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。
数字签名
数字签名是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。
将传递的信息进行Hash获取信息摘要,将摘要通过 服务器私钥 加密就生成 数字签名
数字证书
用来确定公钥是否是真正的公钥,而不是中间人的公钥。
证书中心(CA) 给服务器公钥做认证,证书中心用自己的私钥 对服务器公钥和一些相关信息加密,来生成 数字证书 。
以后服务器和客户端传递消息,在签名的同时,再附上证书认证,客户端可以通过 CA的公钥 来解开数字证书获取 服务器的公钥 ,来解开 数字签名 获取信息摘要,在通过对信息进行Hash得到结果,与解密得到的信息摘要进行对比,两者一致说明信息未被修改。