Java 公钥加密与私钥加密

Java 公钥加密与私钥加密,java,encryption,cryptography,public-key-encryption,private-key,Java,Encryption,Cryptography,Public Key Encryption,Private Key,我在我的项目中使用“公钥”对消息进行“加密”,使用“私钥”对消息进行“解密”,实现了非对称加密 我们是否曾经使用“私钥”来“加密”消息,使用“公钥”来“解密”。如果是的话,有人能给我一个这样的使用案例吗?这种加密也被称为“非对称加密”非对称意味着你不能使用与加密相同的密钥进行解密。 代码签名是一种使用私钥加密的方案。然后,代码的接收者可以使用他们的公钥来验证代码是否没有更改。就邮件本身的术语加密而言,答案是否,因为这样的加密是完全无用的。因为公钥应该是公开的,所以每个人都可以用它来解密。因此,使

我在我的项目中使用“公钥”对消息进行“加密”,使用“私钥”对消息进行“解密”,实现了非对称加密


我们是否曾经使用“私钥”来“加密”消息,使用“公钥”来“解密”。如果是的话,有人能给我一个这样的使用案例吗?这种加密也被称为“非对称加密”

非对称意味着你不能使用与加密相同的密钥进行解密。 代码签名是一种使用私钥加密的方案。然后,代码的接收者可以使用他们的公钥来验证代码是否没有更改。

就邮件本身的术语加密而言,答案是,因为这样的加密是完全无用的。因为公钥应该是公开的,所以每个人都可以用它来解密。因此,使用私钥加密无法提供机密性


正如其他人已经提到的那样,在另一边签名是唯一的用例。它不会对实际有效负载(消息)应用加密。它使用不同的填充方案对消息上的加密哈希进行加密(只能从同一消息复制)。通过这种方式,您可以确定拥有私钥的实际参与方对消息进行了签名。

使用私钥加密内容的简单示例是对某些文档/文本/其哈希进行签名/…请参阅Crypto.SE:@ArtjomB。我试图更广泛地解释,但在投票中没有太多成功。也许这个解释太复杂了。@owlstead我最初搜索过类似的东西,但没有找到。很棒的自我介绍。对于Crypto.SE来说,它当然不太复杂,但用户可能会遇到问题。@ArtjomB。我重新构造了这个答案,希望现在更容易阅读。永远不要混淆加密和签名,即使是RSA。两者都使用模幂运算,这是事实,但这就是比较的终点。甚至模块求幂在PKCS#1规范中也明确给出了不同的名称,然后在填充和散列方面存在差异……应用密码学Bruce Schneier(1.1.术语):“有时,消息将用私钥加密,用公钥解密;这在数字签名中使用。”关于RSA,当然是一般意义上的。同意之前在现实世界中关于细节的评论。有些库不允许使用私钥进行加密,例如MS CryptoAPI