惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
D
Docker
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
爱范儿
爱范儿
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
Recent Announcements
Recent Announcements
U
Unit 42
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
量子位
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - Colin_Ye

Mac OS X 中 emacs 24.x+clojure+lein2.x+slime简单编程环境的搭建 JDK中并发状态管理注意事项 JDK中可扩展性和线程安全的注意事项 并发中状态的处理 并发的任务分工 语言分类,我接触和我想学习的 CPU的内部物理结构介绍【转】自己留着看看 提高编程技巧的十大方法 关于大型机的入门介绍【转】 什么是S-OFF【转】 Android 常识【转·】 关于APK、ROM、SPL、Superuser、ROOT、recovery【转】此文有很多不当之处,但还可以看看 关于Bootloader、Recovery 比较全的Linux目录存放内容 tomcat 内存问题 部分银行核心系统的资料 【转】 一些软件设计的原则【转】——本来想自己总结,结果发现个更全的, SOA复习与总结——企业应用系统集成的总结(1)——基本原则和术语介绍 重读模式与架构(2)——层次划分的依据和角色职责
公私钥与加密、签名
Colin_Ye · 2011-04-22 · via 博客园 - Colin_Ye

先明确一下概念: 
公钥加密私钥解密,   没问题,也可以说是 "公共密钥加密系统 " 
私钥加密公钥解密,一般不这么说,应叫 "私钥签名,公钥验证 ",也可以说是“公共密钥签名系统” 

再来说一下 "公共密钥签名系统 "目的:(如果晕就多看几遍,这个没搞清,后面的代码就更晕) 

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说的,用私钥加密签名,公钥验证是可以的。