加密算法的一点分享
前言
Github:https://github.com/HealerJean
1、密码学
保密性:其他人看不到发送的真实信息,即使被获取到,也只是看到乱码
数据完整性: 消息虽然是加密的,但是消息是完整的。在看不到原始信息的情况下,如果有攻击者修改信息,这样是不安全的
不可否认性:消息确实是发送者发出的,不可以抵赖说没有发送过
身份认证:确认消息发送给接受者,这是一个身份认证的问题
2、编码算法
编码算法不是安全算法,编码算法是可以直接还原的
比如:
base64
算法
3、安全算法
我目前把它分成两类,但这不是严格意义上的学术分类
1、消息摘要算法:
2、加解密算法 :经过加密后的信息,可以解密还原回来
3.1、消息摘要算法
主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。比如 hash算法
包括:
Hash
算法,HMAC算法,秘钥衍生算法等
3.1.2、Hash
算法
1、无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。这样一定会出现碰撞,因为输入是无限的,而输出的长度是固定的。好的摘要算法,虽然“碰撞”是肯定存在的,但是没有人能从中找到“碰撞”或者说极度难找到。(
MD5
(MI
用过查询加密字段,Hash
中最常见的算法) )2、只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到任何与原信息相关的信息(不可逆性)。
3.1.2.1、应用
3.1.2.1.1、文件比较
3.1.2.1.2、存储密码
3.1.2.1.3、金融校验
3.1.2.2、总结和理解
3.3、加解密算法
3.3.1、对称加密算法
秘钥是一个。可以进行加解密的操作,用于数据加解密,秘钥千万不能泄露
3.3.2、非对称加解密
公私钥,公钥加密,私钥解密,私钥加签名,公钥验证签名
3.3、总结