文档章节

浅谈信息加密技术和算法

蛙牛
 蛙牛
发布于 2014/06/23 22:22
字数 931
阅读 341
收藏 10
点赞 0
评论 1

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总结

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


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


© 著作权归作者所有

共有 人打赏支持
蛙牛

蛙牛

粉丝 524
博文 45
码字总数 48937
作品 1
朝阳
程序员
加载中

评论(1)

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

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

snowing1990 ⋅ 2016/04/13 ⋅ 0

浅谈密码存储安全

前言 用户信息泄露事件层出不穷,百度或谷歌输入“密码泄露”,搜出来的泄密门更是让人目瞪口呆:从小公司到大公司,从明文存储到普通的哈希加密。作为一个IT从业者,我深刻感受到“得用户者...

等风起 ⋅ 2015/08/13 ⋅ 23

浅谈web架构之架构设计

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

看看这天 ⋅ 2016/10/20 ⋅ 0

Android安全开发之浅谈密钥硬编码

Android安全开发之浅谈密钥硬编码 作者:伊樵、呆狐@阿里聚安全 1 简介在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码、文件中,这样做会引起很大...

阿里聚安全 ⋅ 2016/05/16 ⋅ 1

Android应用安全开发之浅谈加密算法的坑

作者:阿里移动安全@伊樵,@舟海 Android开发中,难免会遇到需要加解密一些数据内容存到本地文件、或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数...

阿里聚安全 ⋅ 2016/03/23 ⋅ 0

《Nodejs开发加密货币》之九:在Nodejs中使用加密解密技术

关于 《Nodejs开发加密货币》,是一个加密货币产品的详细开发文档,涉及到使用Nodejs开发产品的方方面面,从前端到后台、从服务器到客户端、从PC到移动、加密解密、区款链等各个环节。代码完...

imfly ⋅ 2016/05/06 ⋅ 0

浅谈https\ssl\数字证书

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

周志超 ⋅ 2015/05/07 ⋅ 0

Zcash 钱包浅谈

Zcash 钱包浅谈 DBA@Robin2017-12-213 阅读 本文由币乎社区(bihu.com)内容支持计划奖励。 这是「区块链技术指北」的第 9 篇文章。 如果对我感兴趣,想和我交流,我的微信号: Wentasy ,加...

DBA@Robin ⋅ 2017/12/21 ⋅ 0

《浅谈JavaScript系列》系列技术文章整理收藏

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

开元中国2015 ⋅ 2015/07/27 ⋅ 0

RSA加密解密及数字签名Java实现

RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三...

Jialy ⋅ 2013/10/25 ⋅ 5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 43分钟前 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 47分钟前 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 50分钟前 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 58分钟前 ⋅ 0

linux实用操作命令

参考 http://blog.csdn.net/qwe6112071/article/details/50806734 ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 同-a,但不列出"."和"...

简心 ⋅ 今天 ⋅ 0

preg_match处理中文符号 url编码方法

之前想过直接用符号来替换,但失败了,或者用其他方式,但有有些复杂,这个是一个新的思路,亲测可用 <?php$str='637朗逸·超速新风王(300)(白光)'; $str=iconv("UTF-8","GBK",$s...

大灰狼wow ⋅ 今天 ⋅ 0

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 今天 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 今天 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部