BCrypt加密的原理,以及常见的加密算法

BCrypt加密:是一种加盐的加密方法,MD5加密时候,同一个密码经过hash的时候生成的是同一个hash值,在大数据的情况下,有些经过md5加密的方法将会被破解.使用BCrypt进行加密,同一个密码每次生成的hash值都是不相同的。每次加密的时候首先会生成一个随机数就是盐,之后将这个随机数与密码进行hash,得到 一个hash值存到数据库中使用的函数是BCrypt.hashpw(password, BCrypt.gensalt())。当用户在登陆的时候,输入的是明文的密码,这个时候,在springSecurity.xml文件中的认证管理器中配置BCrypt加密方式,将会将会从数据库中取出这个hash值进行分离,前面的22位就是加的盐,之后将随机数与前端输入的密码进行组合求hash值判断是否相同,使用的函数是: match BCrypt.checkpw(candidate, hashed)。
https://www.jianshu.com/p/2b131bfc2f10
加密分为对称加密和非对称加密,对称加密中加密和解密使用的是同一个密钥,通常使用的是相对较小的密钥,一般情况下小于256bit,密钥实际上是一种算法,密钥越大加密越强,但是加密和解密的过程越慢,一般使用较小的密钥。发送方使用密钥将明文的数据加密成为密文然后发送出去,接收方收到密文之后,使用同一个密钥将密文解密成为明文进行读取。对称加密的计算量下速度快效率高,对称加密通常用于需要加密大量数据的时候使用,但是对称加密存在问题,密钥传输问题,因为对称加密和解密使用的是同一个密钥,所以对称加密的安全性不仅取决于加密算法的本身,更取决于密钥是否被安全的保管,加密者如何将密钥安全的传输到解密者手中是一个很重要的问题( 采取的解决方式1.密钥周期行变化,或者是实时变化,2.使用对端的公钥产生加密会话密钥并传递给对端,对端使用私钥解密获取会话密钥,之后双方基于密钥进行对称加密的保密通信,就是说非对称加密和对称加密配合使用),密钥管理问题,随着密钥数量的增多,密钥的管理问题会逐渐的显示出来,我们在加密用户的信息时候,不可能所有的用户都用同一个密钥进行加密解密,如果使用同一个密钥进行加密和解密的话,密钥泄露之后将会泄露所有用户的信息,因此要为每一个用户单独生成一个密钥并进行管理,这样密钥的管理成为一个问题,密钥管理问题使用非对称加密进行管理,达到一对多的问题常见的对称加密算法有AES DES 3DES IDEA算法(https://www.jianshu.com/p/3840b344b27c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation)

非对称加密
非对称加密算法:非对称加密使用了一对密钥公钥和私钥,公钥可以发给任何请求它的人,私钥只能由一方保管,不能外泄。使用公钥进行加密,则只能用对应的私钥进行解密,使用私钥进行加密则只能使用公钥进行解密。假设A要给B发送数据,首先B先生成一对密钥,称之为B公钥和B私钥,B私钥保存在B自己的手中,B的公钥发送给A,之后A用B的公钥把明文加密生成密文,B用B私钥把密文解密生成明文进行阅读。非对称加密解决了密钥传输问题,解决了密钥管理问题,非对称加密计算量大加密速度慢,适合少量数据进行加密的场景,常见的非对称加密的方式是:RSA,DSA,DH(https://www.jianshu.com/p/9785bd492a6e)

摘要算法,Hash算法
摘要算法,相同的输入会有相同的输出,消息摘要采用单向的hash函数,无法从消息摘要中找到源信息,但是现在数据量大可能会找到,摘要算法常用于计算数据的完整性通过比较hash直是否相同进行判断。常见的摘要算法有md5,sha1,sha2(https://www.jianshu.com/p/38c93c677124)
数字证书
数字证书是一种权威性的电子文档,是由公正权威的第三方机构CA中心签发的证书,以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密,数字签名和签名验证,确保网上传递信息的机密性和完整性,使用了数字证书,即使发送的信息在网上被其他人截获甚至是丢失了个人账户密码等信息,仍然可以保证账号的安全性和资金安全,它能提供在inernet上进行身份验证的权威性电子文档,可以在互联网交往中用它来证明自己的身份和识别对方的身份。
数字签名:https://www.wosign.com/news/news_2018101101.htm
https://www.jianshu.com/p/4932cb1499bf

支付宝和微信付款中的加密方式
https://www.jianshu.com/p/6f5f0695d8fa

你可能感兴趣的:(BCrypt加密的原理,以及常见的加密算法)