简单hash的概念和数字签名


hash算法

其实就是将一段非常长的数据通过hash变换为一个固定长度相对较短的数据,简称“摘要”。

hash算法的种类很多。

hash碰撞

hash可以将任意长度的数据变为一个固定长度的值,算法的精妙在于这个值对于不同的数据还是不一样的,如果不同的数据生成的hash值一样,就是有名的“hash碰撞了”

MD5加密

比如很多网站喜欢将用户的密码经过MD5变换后存储,主要防止数据库泄露后直接查看用户的密码,真正密码比对时对用户输入的密码进行md5变换然后和存储的md5值比较
从密码学上讲加密过程都要对应解密过程,即可以通过密文还原明文,所以以上的密码保护方法不是严格意义上的数据加密解密。

不对称加密:

不对称加密一个重要特点就是:公钥加密的数据私钥可以解密,私钥加密的数据公钥可以解密,

个人理解:不对称加密应该是3部分组成,公钥和私钥还有创建者算法。一般暴露的是公钥和私钥,创建者算法由第三方权威保留。

 

数字签名是两个过程:

先对数据进行hash摘要,然后对摘要进行私钥加密。

目的:数字签名解密后和数据解密后的明文hash算法后进行对比。这个过程叫做验证签名

 

个人理解:不管是md5还是不对称加密,可能多种数据加密后出现相同结果,只是概率小,有好处也有坏处。

坏处是,不能唯一的标识一个数据(但数据一般是有格式的,虽然满足这个结果但是数据格式未必就能正确,变得不可识别,可以伪造,但是很难被认可)。
好处是,因为并不唯一,破解得到结果就不确定,需要对所有结果进行验证。而且这个数据的大小是不确定的造成很大的计算量。

而数字签名和不对称加密一起使用:更加有利于对数据正确性的验证。同时增加了伪造数据的难度。

 

一般的加密过程应该至少有2套公钥和私钥:

1),所以人公用一套公钥用来查看消息(这个消息必须是可以公开的因为所有人可以解密),发送消息每人配一套私钥

2),每个人都有一个公钥和私钥对应2套加密(一个用来加密发送,一个用来解密接收)

密钥套数和人数量(n)的关系:1)是n+1;2)是2n

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM