[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
系统服务
> 详细
关于加密解密你知道多少? 加密解密的方法详解
时间:
2015-12-31 11:51:48
阅读:
140
评论:
0
收藏:
0
[点我收藏+]
;小时候做过这样的事儿,写日记的时候为了只让自己看的懂,不让他人看的懂,就想了这样办法。
日记内容: 我想255许1989喜欢201。知道这是什么意思么?呵呵通过一个很幼稚简单的算法来实现的。26个英文字母表和汉语字母的对照,很无聊吧,不过当时感觉很神秘的(小孩的心思)。不管怎么说,这也算是知道什么是加密了,什么是解密了
一、加密、解密、算法之间的关系
把一段原始数据通过某种算法处理成另一种数据(原始数据为明文,处理后的数据为密文)。明文----->密文 称之为加密;密文---->明文 称之为解密;
所以对于加密、解密来讲算法本身非常关键。但是算法是公开的,一旦有些人想要破解这个算法,而且被破解了,则所有使用这个算法的产品的都要报废了,(例如我上面的小日记,就无处躲藏了
),而且替换一个算法耗费的资本也是很大的,毕竟找一个合适的算法也不是一件简单的事。因此一个加密出来的数据本身可靠与否,取决于密钥,而不是算法,因为密码的调换成本很低的。
二、什么是密钥
密钥是一种参数,它是在明文-->密文或者密文-->明文的算法中输入的数据。分为对称密钥、非对称密钥。
对称密钥加密:又称私钥加密,即发送方和接收方用同一个密钥去加密和解密数据。优势是加密/解密速度快,适合于对大数据进行加密,但是密钥管理困难(因为要发送给不同的接受者,肯定不能使用同样的密钥吧,若是接受者多,记密钥就是一项艰巨的任务了)
非对称密钥加密:又称公钥加密。需要使用不同的密钥来分别完成加密和解密操作。一个公开发布,即公钥;另一个由用户自己秘密保存,即私钥。发送方用对方的公钥加密数据,对方用自己的私钥解密。缺点在于加密/解密的速度比对称密钥慢得多。
三、加密算法
对称加密算法 公钥加密算法 单向加密算法
1 对称加密算法:与上面介绍的对称密钥加密原理是一样的。
从图中看到,发送方和接收方使用的是同一个密钥,但是想过没有,接收方如何获得密钥呢?打电话?发短信?还是写信?应该都不是吧,这样哪里还有安全性可言?(下面的公钥解密算法就可以解决这个问题)
2 公钥加密算法:与上面介绍的非对称密钥机密原理是一样的。
从图中看到,发送发和接收方使用的不是同一个密钥,发送方使用接收方的公钥进行加密,接收方使用与之配对的私钥进行解密。整个传送过程中,加密后的数据只用接收方自己可以解密,因为只有他自己拥有私钥。上面也介绍过,此种加密的耗费时间长,并不是一个理想的加密方式。
因此公钥解密算法有两个主要的功能:
1 实现密钥的交换,在对称加密算法中有这样一个问题,对方如何获得密钥,在这里就可以通过公钥算法来实现。即用公钥加密算法对密钥进行加密,再发送给对方就OK了
2 数字签名。加密可以使用公钥/私钥,相对应的就是使用私钥/公钥解密。因此若是发送方使用自己的私钥进行加密,则必须用发送方公钥进行解密,这样就证明了发送方的真实性,起到了防抵赖的作用。
注意:公钥(public key)是从私钥(private key)中提取出来的
把对称加密和公钥加密糅合在一起,可以保证数据的机密性,来源的合法性。但是数据本身的完整性该如何解决呢?若是被非法截取,然后对数据乱改一通,破坏了数据的完整性,接收方又该如何判断呢?
3 单向加密算法
准确来说,单向加密算法并不是一种加密技术,而是通过提取数据特征码,来验证数据的完整性。
特征:
雪崩效应:任何微小的改变都会产生巨大的不同,也就是数据只要有一点改变,结果就会大不相同
定长输出:不论数据是多大的,提取的特征码的长度都是一样的
上面的这三种算法,并不是独立的,应该说糅合到一起使用。最终保证数据的可靠性、完整性、机密性以及来源的合法性。
接下来演示这个过程,小明---->小美发送数据《爱的表白》呵呵
小结:提取特征码是为了保证数据的完整性;用自己的私钥加密是为了身份验证;用对方的公钥加密保证了机密性,是有对方可以解密;
三种加密的基本算法到此就OK啦,我想应该说明白了 呵呵
关于加密解密你知道多少? 加密解密的方法详解
原文:http://www.jb51.net/hack/56380.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!