博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
公私钥与加密、签名
阅读量:5081 次
发布时间:2019-06-12

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

先明确一下概念: 
公钥加密私钥解密,   没问题,也可以说是 "公共密钥加密系统 " 
私钥加密公钥解密,一般不这么说,应叫 "私钥签名,公钥验证 ",也可以说是“公共密钥签名系统” 
再来说一下 "公共密钥签名系统 "目的:(如果晕就多看几遍,这个没搞清,后面的代码就更晕) 
A欲传(信息)给B,但又怕B不确信该信息是A发的。 
1.A选计算(信息)的HASH值,如用MD5方式计算,得到:[MD5(信息)] 
2.然后用自已的私钥加密HASH值,得到:[私钥(MD5(信息))] 
3.最后将信息与密文一起传给B:传给B:[(信息)   +   私钥(MD5(信息))] 
B接到   :[(信息)   +   私钥(MD5(信息))] 
1.先用相同的HASH算法算出(信息)的HASH值,这里也使用MD5方式   
得到:   [MD5(信息)!] 
2.   再用A的公钥解密   [   私钥(MD5(信息))] 
      [公钥(私钥(MD5(信息)))]   =   [(MD5(信息)] 
      如能解开,证明该   [   私钥(MD5(信息))]是A发送的 
3.再比效[MD5(信息)!]与[(MD5(信息)] 
      如果相同,表示(信息)在传递过程中没有被他人修改过 
再补充一点,非对称密钥的目的是为了实现不对等的身份验证。加密算法在这里只是实现目的的一个手段。 

他不适合大数据块的加密。这种方式还应该用对称密钥加密方法(如DES)  

 注意,我为何说这种方式不叫加密:因为A所发的(信息)至始到尾都是暴露的。 

在个种模式下,任何人都可以看到(信息),也可以修改(信息) 
但如果(信息)被修改了,B可以发现 
所以 "公共密钥加密系统 "叫信封,如我们邮信时的信封,保证内容不被人看到 
“公共密钥签名系统”叫手印,保证收到该信的人能确认发信人身份

 如果要加/解密大段的数据,那么只能公钥加密,私钥解密。但是如果是做签名的话,就像wxwinter说的,用私钥加密签名,公钥验证是可以的。

转载于:https://www.cnblogs.com/yecllsl/archive/2011/04/22/2025087.html

你可能感兴趣的文章
学习windows编程 day4 之 盯裆猫
查看>>
[C# 开发技巧]实现属于自己的截图工具
查看>>
(一) Mysql 简介及安装和配置
查看>>
5th week blog
查看>>
openModelica调试
查看>>
03_通过sql操作数据库
查看>>
资料.20190117
查看>>
现在运行着金山词霸,ctrl+L用不了
查看>>
[转] Eclipse 编辑相关快捷键
查看>>
安装关系型数据库MySQL 安装大数据处理框架Hadoop
查看>>
一分钟了解网站性能测试
查看>>
HDU3589-雅可比符号
查看>>
python常见编码错误集合
查看>>
Spring Boot笔记—多线程系列(三)—配置参数详解
查看>>
Maven工程webinfo下面的JSP页面无法加载.js、.css文件的解决方案
查看>>
php 的文件操作类
查看>>
php 重要函数归集
查看>>
Js 小技巧
查看>>
Mono for Android 学习一 环境的搭建
查看>>
正则表达式工具RegexBuddy使用教程(原创自Zjmainstay)
查看>>