文档章节

浅谈信息加密技术和算法

蛙牛
 蛙牛
发布于 2014/06/23 22:22
字数 931
阅读 365
收藏 10

1单向散列加密

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

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

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

推荐使用 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算法等。

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

    

java-DES加密/解密 -demo: http://www.oschina.net/code/snippet_727646_18383

3非对称加密

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

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

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

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

java-RSA加密/解密-demo :http://blog.csdn.net/centralperk/article/details/8558678

http://blog.csdn.net/liuhuabai100/article/details/7585879

4总结

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


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


© 著作权归作者所有

共有 人打赏支持
蛙牛

蛙牛

粉丝 529
博文 46
码字总数 48937
作品 1
朝阳
程序员
私信 提问
加载中

评论(1)

狮子的魂
狮子的魂
学习了。。
浅谈 PHP 中的多种加密技术及代码示例

同样是一道面试答错的问,面试官问我非对称加密算法中有哪些经典的算法? 当时我愣了一下,因为我把非对称加密与单项散列加密的概念弄混淆了,所以更不用说什么非对称加密算法中有什么经典算...

snowing1990
2016/04/13
28
0
浅谈web架构之架构设计

前言 题目有点大,所以不可能说得非常具体,笔者也不能驾驭全部。 前面介绍过网站发展过程中架构的演化过程,本文主要针对网站架构各个方面的建设进行简单介绍。 架构模式 先来说说模式:每一...

看看这天
2016/10/20
22
0
浅谈https\ssl\数字证书

全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。 ...

周志超
2015/05/07
0
0
《浅谈JavaScript系列》系列技术文章整理收藏

《浅谈JavaScript系列》系列技术文章整理收藏 1浅谈JavaScript中面向对象技术的模拟 2浅谈javascript函数劫持[转自xfocus]第1/3页 3浅谈javascript 面向对象编程 4老鱼 浅谈javascript面向对...

开元中国2015
2015/07/27
1K
0
浅谈android数据存储加密

写在开头 CSDN:http://blog.csdn.net/sayfromwen 掘金:https://juejin.im/user/59b09eb2518825241e2255ea 在移动端的开发中,数据安全的问题一直是大家备受关注的,数据加密技术也受到了大...

亭子happy
10/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用Autowired和Qualifier解决多个相同类型的bean如何共存的问题

注意: 实现类UserServiceImpl,MyUserServiceImpl 需要区分:@Service("userServicel") @Service("myUserService") https://blog.csdn.net/russle/article/details/80287763......

qimh
36分钟前
2
0
SQL 语句使用to_char函数时,检索结果有空格

小疯在使用Oracle过程中,使用to_char函数检索表数据时发现检索结果前面会有一个空格,对后续开发有影响。问题很好解决,比较直接对可以做一下trim处理。但是小疯很疑惑为什么会有空格呢,于...

野小疯
37分钟前
1
0
对接比特币钱包的PHP开发包

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

汇智网教程
55分钟前
1
0
【自用】 VHD to VHDX

VHDX: 在VHD 2TB 的基础上提供 64TB的容量。 支持逻辑扇区大小为 4KB,和每块的大小为 256MB,来优化虚拟磁盘性能。 比VHD提供更高的安全性、可靠性和性能。 convert-VHD –path d:\Hyper-v...

Tensor丨思悟
今天
3
0
30 岁转行做Python开发晚吗?而且是零基础

最近有小伙伴问小编,30 岁转行做Python开发晚吗? 小编想说,其实无论男女,只要想学,有这个动力,就直接去行动。无论年龄,无论性别,只要你想一直勇往直前,那么想做的就去做吧~这里有一...

糖宝lsh
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部