浅谈信息加密技术和算法

1单向散列加密

单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,不可逆的。常用的单向散列算法有MD5,SHA等。

比如网站中,用户密码,一般可以进行MD5加密后保存,用户登录时,对用户输出的密码进行加密后和数据库密文进行比较,如果一致,则验证成功。

为了加强计算的安全性,可以对数据加上密钥,增加pojie的难度。

image.png

推荐使用 apache common的 commons-codec的 jar包 比如(commons-codec-1.8.jar)

2对称加密

对称加密是指加密和解密使用相同的密钥。明文可以根据密钥进行加密,密文可以根据密钥进行解密为明文。

对称加密算法常用于Cookie加密,通信加密等场合。常用的算法有DES,RC,AES算法等。

对称算法优点是算法简单,加密解密效率高,系统开销小,适合对大量数据加密。是一种传统加密手段,也是最常用的加密手段,适用于绝大多数需要加密的场合。

image.png

java-DES加密/解密 -demo: www.oschina.net/code/snippe…

3非对称加密

非对称加密,是指加密和解密使用不同的密钥,其中一个对外公布,称为公钥,另外一个不对外公布,称为私钥。用公钥加密的信息必须用私钥解开,用私钥加密的信息只有公钥才能解开。

非对称加密技术常用于信息安全传输,数字签名等场合。常用算法有RSA算法等。

比如信息发送者获得信息接受者的公钥,对提交信息进行加密,通过非安全传输通道将密文发送给接受者,接受者得到密钥后,用自己的私钥进行解密,获得明文信息。在传输过程中遭到信息窃取时,窃取者没有密钥无法获得明文。

数字签名过程相反,签名者用自己的私钥对信息进行加密,发送接收方,接收方使用签名者的公钥对信息进行解密,由于私钥只有签名者拥有,那么发送的信息具有签名性质,不可抵赖。

image.png

java-RSA加密/解密-demo :blog.csdn.net/centralperk…

blog.csdn.net/liuhuabai10…

4总结

在实际应用中,可根据实际需要可以混合进行使用。同时加密技术中,密钥是十分关键的存在。一旦密钥泄露出去,加密信息就会失去秘密性。在一些安全性高的项目中,密钥和算法可以独立部署,向外提供加密和解密服务,由专人维护,系统性能开销较大。或者加密算法放在应用中,密钥单独部署,定时更新,密钥可进行切片存储多台服务器,每台服务器有专人管理,大家各司其职,没人可以查看完成密钥信息。

你可能感兴趣的:(浅谈信息加密技术和算法)