常用加密方式
2015-12-16 15:05
225 查看
一.常用加密方式的介绍
常用的加密方式有Base64,MD5,MD5加盐,时间戳密码
二.加密方式介绍
1.base64
base64
基本能够达到安全要求,但是,base64能够逆运算,非常不安全!
原本是 8个bit一组表示数据,改为 6个bit一组表示数据,不足的部分补零,每两个0
用
一个 = 表示.
用base64编码之后,数据长度会变大,增加了大约1/3左右.
2.MD5(信息-摘要算法)
对输入信息生成唯一的128位散列值,主要运用在一致性验证、数字签名、文件完整性验证以及口令加密等方面
MD5的特点
1)任意长度的数据,算出的MD5值长度是固定的
2)从原数据计算出MD5值很容易
3)根据输出值,不能得到原始的明文,其过程不可逆,但是MD5可以正向解密,所以MD5不是绝对安全的
4)想找到两个不同数据,使他们具有相同的MD5
值,是非常困难的。
3.MD5加盐
在密码哈希过程中添加的额外的随机值
加盐(salt):在明文的固定位置插入随机串,然后再进行MD5
先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
加盐要足够长,足够复杂
4.时间戳(用户密码动态变化)
相同的密码明文 + 相同的加密算法 ==》每次计算都得出不同的结果,可以保证密码的安全性
原理:当前时间加入到密码中
服务器也需要采用相同的算法.这就需要服务器和客户端时间一致.
注意:服务器端时间和客户端时间,可以有一分钟的误差(比如:第59S发送的网络请求,一秒钟后服务器收到并作出响应,这时服务器当前时间比客户端发送时间晚一分钟).
这就意味着,服务器需要计算两次(当前时间和一分钟之前两个时间点各计算一次).只要有一个结果是正确的,就可以验证成功!
也可以设置三分钟的间隔
5.对称加密
加密和解密使用相同的秘钥
存在的问题:秘钥的数目难于处理。因为对于每一个合作者都需要使用不同的秘钥
6.非对称加密
需要一对秘钥:公开的交公钥,不公开的叫私钥。
任意一个都可用来加密,需要另一个来解密。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
特点:解密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。
<
4000
p>工作原理
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密消息)。
5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
常用的加密方式有Base64,MD5,MD5加盐,时间戳密码
二.加密方式介绍
1.base64
base64
基本能够达到安全要求,但是,base64能够逆运算,非常不安全!
原本是 8个bit一组表示数据,改为 6个bit一组表示数据,不足的部分补零,每两个0
用
一个 = 表示.
用base64编码之后,数据长度会变大,增加了大约1/3左右.
2.MD5(信息-摘要算法)
对输入信息生成唯一的128位散列值,主要运用在一致性验证、数字签名、文件完整性验证以及口令加密等方面
MD5的特点
1)任意长度的数据,算出的MD5值长度是固定的
2)从原数据计算出MD5值很容易
3)根据输出值,不能得到原始的明文,其过程不可逆,但是MD5可以正向解密,所以MD5不是绝对安全的
4)想找到两个不同数据,使他们具有相同的MD5
值,是非常困难的。
3.MD5加盐
在密码哈希过程中添加的额外的随机值
加盐(salt):在明文的固定位置插入随机串,然后再进行MD5
先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
加盐要足够长,足够复杂
4.时间戳(用户密码动态变化)
相同的密码明文 + 相同的加密算法 ==》每次计算都得出不同的结果,可以保证密码的安全性
原理:当前时间加入到密码中
服务器也需要采用相同的算法.这就需要服务器和客户端时间一致.
注意:服务器端时间和客户端时间,可以有一分钟的误差(比如:第59S发送的网络请求,一秒钟后服务器收到并作出响应,这时服务器当前时间比客户端发送时间晚一分钟).
这就意味着,服务器需要计算两次(当前时间和一分钟之前两个时间点各计算一次).只要有一个结果是正确的,就可以验证成功!
也可以设置三分钟的间隔
5.对称加密
加密和解密使用相同的秘钥
存在的问题:秘钥的数目难于处理。因为对于每一个合作者都需要使用不同的秘钥
6.非对称加密
需要一对秘钥:公开的交公钥,不公开的叫私钥。
任意一个都可用来加密,需要另一个来解密。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
特点:解密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。
<
4000
p>工作原理
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密消息)。
5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
相关文章推荐
- TextFiled 控制键盘只可以输入数字(TextFiled only allow number input)
- 按区域统计采购金额 jfreechart 图表显示
- VS中的SVN的图标不见了
- amoeba+mmm搭建mysql高可用负载均衡集群
- iis7 发布mvc3 遇到的HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容
- zzulioj 1776: 和尚特烦恼2——第几个素数 (素数打表)
- 文件上传
- fuseTools下 如何融合使用 javaScript,Uno Program,Ux MarkUp
- OC中数组操作1
- 未能加载文件或程序集“***”或它的某一个依赖项。拒绝访问。vs2005+win7 64
- zzulioj--1775-- 和尚特烦恼1——是不是素数(素数水题)
- JavaScript_confirm_Js确认删除对话框
- Android:解决DatePickerDialog只有完成按钮、没有取消按钮的问题
- android系统编译kernel出错:file not recognized: File truncated
- 加载网络的url工具的两个方法(直接使用)
- 一步一图剖析CSS中的position定位
- 活动指示器UIActivityIndicatorView
- git diff的用法
- javascript对象
- CodeForces 604C 【思维水题】`