/**
* 每天一个知识点day58 TODO 对称加密与非对称加密
*
* https://zhuanlan.zhihu.com/p/49494990
*
* 对称加密:
* 在对称加密算法中,加密和解密使用的是同一把钥匙,
* 即:使用相同的密匙对同一密码进行加密和解密;
*
* 加解密过程:
* 加密:明文 + 密钥 = 密文
* 解密:密文 + 密钥 = 明文
*
* 优点:算法简单,加密解密容易,效率高,执行快。
* 缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,
* 且密钥也被劫持,那么,信息很容易被破译。
* 常用算法:DES、3DES、
*
* 非对称加密:
* 非对称加密包含两把密钥,公钥(public key) 和私钥(private key)
* 公钥和私钥是成对的存在,如果对原文使用公钥加密,则只能使用对应的私钥才能解密;
* 反之亦然可以,私钥加密的公钥才能解密。
* 因为加密和解密使用的不是同一把密钥,所以这种算法称之为非对称加密算法。
*
* 非对称加密算法的密匙是通过一系列算法获取到的一长串随机数,
* 通常随机数的长度越长,加密信息越安全。
* 通过私钥经过一系列算法是可以推导出公钥的,也就是说,公钥是基于私钥而存在的。
* 但是无法通过公钥反向推倒出私钥,这个过程的单向的。
*
* 优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,
* 也就无法破译密文。作为接收方,务必要保管好自己的密钥。
* 缺点:加密算法及其复杂,安全性依赖算法与密钥,而且加密和解密效率很低。
* 常用算法:RSA、DSA、ECDSA
*
*
* 数字签名:
* 数字签名是指将摘要信息使用接收者的公钥进行加密,与密文一起发送给接收者。
* 接收者使用自己的私钥对摘要信息进行解密,然后使用Hash函数对收到的密文产生一个摘要信息,
* 然后将摘要信息与发送着传输过来解密后的摘要信息对比是否一致。
* 如果一致,则表明数据信息没有被篡改。
* 也就是说,数字签名能够验证收到的信息的完整性,
* 避免中途信息被劫持篡改或丢失。
* 对方可以根据数字签名来判断获取到的数据信息时候是最原始的数据。
*
*
*
* Hash算法(摘要算法)
* https://blog.csdn.net/qq_34845394/article/details/102720422
* Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,
* 却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
* 主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密
* 常见的摘要算法有: MD2、MD4、MD5、HAVAL、SHA
*
* 消息摘要(Message Digest)又称为数字摘要(Digital Digest)。
* 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。
* 如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。
* 因此消息摘要保证了消息的完整性。
*
* 消息摘要采用单向Hash函数将需加密的明文"摘要"成一串固定位数(如128bit)的密文,
* 这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,
* 其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是“真身”的“指纹”了。
*
* 消息摘要具有不可逆性,在消息摘要生成过程中,会丢失很多原文的信息,而且无法找回。
* 一个好的摘要算法,是极难产生Hash碰撞的,也就是找到另一段明文经计算后产生相同的摘要。
*/













网友评论