修改RSA加密密码文本



我有以下问题:

我使用RSA私钥来加密给定的纯文本。我想通过一个不安全的渠道将其发送到另一个应用程序。另一个应用程序只知道公钥。

中间的男人有可能更改密码文本的部分,以便解密会导致修改后的文本?

我在Java应用程序中自己尝试了一下,但是如果这样做,我总是会得到


javax.crypto.BadPaddingException: Decryption error
    at sun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:380) ~[na:1.8.0_131]
    at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:291) ~[na:1.8.0_131]
    at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:356) ~[sunjce_provider.jar:1.8.0_112]
    at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:389) ~[sunjce_provider.jar:1.8.0_112]
    at javax.crypto.Cipher.doFinal(Cipher.java:2048) ~[na:1.8.0_121]

我在Java应用程序中使用算法" RSA/ECB/PKCS1PADDING"进行加密和解密。

问候

Maarten Bodewes给出了该问题的正确答案:

"我使用RSA私钥来加密给定的纯文本。"。你应该停在那里。使用RSA私钥加密不是签名生成,也不提供消息的机密性;它不是安全的密码。您使用公共密钥加密,并用私钥时期进行加密。 -

最新更新