java调用rsa加密算法
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
(1)私钥用来进行解密和签名,是给自己用的。
(2)公钥由本人公开,用于加密和验证签名,是给别人用的。
(3)当该用户发送文件时,用私钥签名,别人用他给的公钥验证签名,可以保证该信息是由他发送的。当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。
有什么这样的方法供使用吗?这个公钥和私钥还不是特别理解,能不能举个例子,说的通俗一些
私钥和公钥是成对的,例如私钥A和公钥甲是一对,私钥B和公钥乙是一对,那么用公钥加密的内容,只有用和这个公钥成对的那个私钥才能解密,所以用公钥甲加密的内容,用私钥B就解密不出来,只有用私钥A才能解密。
成对的公钥和私钥都可以用来加密或者解密,但是如果用其中一方(例如公钥)来加密,那么就只能用另一方(例如私钥)来解密,反之亦然。
理解上面两点再来说签名。签名的作用主要是让别人确信被签名的信息是由真实的发送方发出来的,而不是由另外一个人发送的。例如张三要发消息给李四,为了让李四可以确认收到的消息确实是张三发出来的而不是王五发的,那么张三可以这么做:
制作一对密钥,也就是一个公钥和一个私钥,并且可以把公钥公开,让所有人都知道。但是私钥要保密,只能张三自己知道。
然后张三可以对自己要发的消息使用私钥进行加密,把加密后的信息发给李四。
李四用张三公开的公钥对加密消息进行解密,解密成功就说明消息确实是由张三发出来的。因为其他人没有张三的密钥,没有办法伪造出能够被张三公钥解密的“密文”。
反过来,李四用张三的公钥加密消息回复给张三,即使消息传输过程中被其他人截获,因为其他人没有张三的私钥而无法解密,所以别人也“看不懂”这些密文消息是在说什么。只有张三本人接收到消息后用私钥进行解密才知道李四究竟对自己说了什么。