博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈信息加密技术和算法
阅读量:5937 次
发布时间:2019-06-19

本文共 1374 字,大约阅读时间需要 4 分钟。

hot3.png

1单向散列加密

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

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

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

211626_ZErC_140593.jpg

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

    /**     * 字符串进行MD5加密     * @param str     * @return     */    public static String encryptMD5(String str) {        return DigestUtils.md5Hex(str);    }    /**     *  将字符串 SHA 加密     * @param str     * @return     */    public static String encryptSHA(String str) {        return DigestUtils.sha1Hex(str);    }

2对称加密

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

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

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

    

212517_Zo4t_140593.jpg

java-DES加密/解密 -demo: 

3非对称加密

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

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

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

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

212640_fghp_140593.jpg

java-RSA加密/解密-demo :

4总结

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

参加文献:《大型网站技术架构》——李智慧(这本书真是个好书,可以大大开拓程序员的眼界)

转载于:https://my.oschina.net/lujianing/blog/283235

你可能感兴趣的文章
linux 笔记本的温度提示
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
apache prefork模式优化错误
查看>>
jmeter高级用法例子,如何扩展自定义函数
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>