安全算法

158 阅读4分钟

摘要算法

最常用的
MD5

SHA1


作用
1.数字签名 //比如,支付系统,校验签名是否相等
2.验证数据完整性 //比如,验证软件是否被篡改。网上下载软件的时候,都会有这个验证

3.登陆功能 //因为密码加密,经常使用md5。其实也是校验是否相等。


如何使用

1.md5(原始数据) = 摘要数据1
2.md5(原始数据) = 摘要数据2

校验两次的运算的摘要数据是否相等。相等,成功;不相等,失败。


总结

md5(原始数据) = 摘要数据 //实际上,总共有2次md5运算。运算的数据都是原始数据。然后,校验两次的计算之后的数据(即摘要数据)是否相等。


应用场景-支付

除了原始数据,一般还会加上秘钥。//这个秘钥,不是真正的加密和解密,只是起一个加盐的作用。


总结2

由上可见,本质md5不是加密和加密算法,因为摘要数据不可逆。他只是一个摘要算法。

加密算法

1.对称加密 //加密和解密,秘钥相同

2.非对称加密 //加密和解密,公钥和私钥


总结

这才是加密解密算法,因为可逆,解密的时候,可以从加密的数据恢复原始数据。

对称加密

同一个秘钥。


应用场景
主要是https。//对称加密DES AES

非对称加密

作用
1.加密和解密 //这个作用,和对称加密是一样的
2.数字签名 // 1.摘要算法2.加解密


总结

非对称加密,是唯一的可以1.加密解密算法2.数字签名算法。

具体来说是:
1.加密解密 //就不用说了。就是1.公钥加密原始数据2.私钥解密加密数据,可以得到原始数据。
2.数字签名 //非对称加密和解密的对象是摘要数据,不是原始数据。对称加密和md5,加密或摘要的对象,都是原始数据。为什么?因为非对称加密算法应用于数字签名算法的时候,实际上是包含了1.摘要算法2.非对称加密和解密算法。详细见下文。


特别注意

非对称加密,应用于1.加密解密算法2.数字签名 这两种情况的区别是什么?其实没有区别。本质是一样的。唯一的区别就是:

1.加密解密 //公钥加密,私钥解密
2.数字签名 //私钥加密,公钥解密

公钥私钥生产者,会给公钥公开,给别人。

数字签名

应用于签名的有两种算法1.摘要算法2.非对称加密。

摘要算法

上面讲过了。

非对称加密

前面讲过了,本质是1.摘要算法2.非对称加密解密算法 二者的结合。


注意几个点
1.摘要算法的对象是谁?原始数据。

2.非对称加密解密的对象是谁?摘要数据。

3.如何校验数据是否相等?
客户端要干的事情是
1)原始数据 //原始数据
2)摘要算法(原始数据)=计算摘要数据 //摘要数据
3)用公钥加密摘要数据=签名 //加密数据=签名
最终传递给服务器端的数据是1.原始数据 2.加密数据=签名

服务器端要干的事情是
1.摘要算法(原始数据)=摘要数据
2.用私钥解密加密数据/签名=摘要数据
服务器端如何校验数据?就是校验1 2两步的摘要数据是否相等,这就是非对称算法如何校验签名的本质。本质是非对称算法包含了两个安全算法1.摘要算法md5 2.非对称加密解密算法rsa。

安全算法在工作当中的使用

基本上都是基于数字签名。然后,校验签名是否相同。1.相同,成功2.不相同,失败。


支付系统里,基本上都是通过验证签名的方法,解决安全问题。

1.md5
2.非对称加密 // 1.一对公钥私钥2.两对公钥私钥

无论是哪一种,本质都是比较数据是否相同。1.相同,成功 2.不相同,失败

md5

md5(原始数据字符串 + 秘钥字符串) = 签名 //这里的秘钥,本质上是一个盐,而不是真的用来加密解密。所以,被摘要的数据实际上是拼接字符串=原始数据字符串 + 秘钥字符串。

非对称加密

1.一种是只有一对公钥私钥 //一对的话,就是私钥加密,公钥解密。只能处理一次请求。

2.一种是两对 //两对的话,就是1.请求2.响应。都要验签。

即,请求 // 1.私钥加密2.公钥解密。验证签名一次。

响应 // 1.私钥加密2.公钥解密。验证签名一次。