公钥和私钥
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
数字证书的原理
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时 设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使 用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密. 在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
相关推荐
公钥和私钥的输入程序 Loading Public and Private Keys This sample demonstrates the types of public/private keys that can be loaded, and the formats in which they can be output.
Java 公钥和私钥加密解密源码,写了注释可以直接运行,测试没有问题
生成RSA公钥和私钥的工具:Windows版OpenSSL 亲测可用。提供32位系统和64位系统版本
puttygen,windows系统下用于生成公钥和私钥。 密钥原理是:服务器用公钥加随机字符串加密,加密结果发送给客户端,客户端用私钥解密,解密结果再发送服务端 服务端验证通过则允许客户端登录。
亲测可用,可参考:https://blog.csdn.net/qq_37835111/article/details/87358779
NULL 博文链接:https://mlaaalm.iteye.com/blog/701070
Java实现,公钥私钥通过计算生产,没有调用API,可以更直观的理解RSA公钥私钥的生成 资源中包含源码、jar包。不管是不想造轮子还是想要学习的同学都适用 也可以根据需要改造代码
C++书写,采用RSA加密算法,可生成公钥和私钥加密解密。
这是公钥和私钥的加密算法的一个简单模拟,对初学计算机安全的人有帮助
支付宝获取公钥和私钥工具
离线生成EOS公钥和私钥,下载附件解压后直接打开PrivateWiftoPubkey.html这个文件即可生成EOS的公钥和私钥。(注意断网后运行,避免私钥触网!)
openssl 中把pem格式的SM2密钥,解析成EC_KEY格式的key,然后解析出key中公钥和私钥
ssh配置公钥和私钥登陆SecureCRT[整理].pdf
RSA加密 非对称加密,有公钥和私钥之分,公钥用于数据加密,私钥用于数据解密 加密结果可逆
BBRSACryptor, 使用OpenSSL进行公钥和私钥的加解密
Java公钥私钥互相加密解密,使用公钥机密私钥解密,使用私钥加密公钥解密
java公钥加密私钥解密与数字证书,数字证书的生成看这里 http://hi.baidu.com/chenminliang/blog/item/2b30db24920ae0338744f9db.html
数据库密码的为了安全最后加密存放,这是一个RSA加密工具类。包含钥匙的生成和检测公钥私钥,具体看类说明,做Java或者Android可以直接拿来使用 非常方便!
java中使用公钥加密私钥解密原理实现license控制