摘要加密
md5,sha1,sha256(固定算法加密)
摘要主要就是哈希值,通过我们的散列的算法。摘要的概念主要是验证完整性和唯一性,不管我们的密码是多长啊,或者多复杂的啊,得到的值都是固定长度。
摘要加密有一定的风险。
比如:123456 用 md5 加密,得到的密码其实是固定的,大家用 md5 加密123456得到的加密密码都是一样的。
大家也可以到一些网站有反解密。通过md5加密的密文,是不能通过反解密解密出来。但是网站会收集原密码 加密后的密文,保存起来,当这个数据库比较大的时候,可以通过得到的密文进行撞库,只要数据库足够大,就有可能破解出原密码
md5bysalt,加盐?是做饭吗?
摘要算法比如 md5,光加密 123456,结果都是一样的,如果是破解的库里正好有这个 md5 就很容易知道逆向是 123456。来一手加盐。盐是随机的字符串,他来与原密码进行一波二次加密。这样获取到的很难破解出来。
对称加密
我们约定了一个密钥。这个密钥一定要好好保存,不能泄漏,一旦泄漏就可以进行逆向的解密了。
加密的过程:密码+密钥 生成
解密的过程:密文+密钥 反解
密钥一定一定要做好其中的保存。
常见的对称加密的算法:AES,DES,3DESC,SM4
比如:设置密文private String key = "55151331"
(1)用户注册时,通过调用第三方库的对称加密方式即可将原密码(也叫明文)进行加密,将密文保存到数据库中
(2)当用户登录时,根据用户输入的原密码 再加密, 和数据库比对,就可以判断密码正确不
(3)对数据库的密文,进行解密的方式(密文:数据库中的密码+密钥:设置的key)
非对称加密
非对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。
一个公钥,一个私钥,然后用法有两种:
(1)公钥去加密,私钥去解密。(一般采用这种)
(2)私钥去加密,公钥去解密。
常见的算法:RSA,ECC,国密的 SM2
算法的性能上差一点,加密的数量没有对称加密快。
比如:A和B数据交换时,A和B双方都要分别产生一对公钥和私钥
比如:注册和登录校验时,只需产生一对公钥和私钥
要提前通过第三方库的方法 生成一对 公钥 和 私钥 ,有了之后保存起来
(1)用户注册时,将原密码(也叫明文)通过公钥,进行加密,将密文保存到数据库中。保存到数据库中密码的是通过公钥进行加密的,别人盗取数据库后,是没有的私钥的,无法破解个人信息
(2)用户登录时,仍然使用原密码登录,后端通过公钥,进行加密,和数据库比对,就可以判断密码正确不