Java RSAEngine.processBlock的字节[]大小不同的原因

Java RSAEngine.processBlock的字节[]大小不同的原因,java,encryption,rsa,bouncycastle,Java,Encryption,Rsa,Bouncycastle,RSEngine(bcprovjdk16-1.45.jar)类中的processBlock方法返回的字节[]大小不同,原因可能是什么。(在运行同一版本java的两台不同机器上,一种情况下为127,另一种情况下为128,[1.7,64位]使用相同的公钥进行加密,使用相同的私钥进行解密,以及使用相同的数据进行解密。基本上,如果我看一下源代码,那么如果输入的大小不同,或者如果输入前面的字节数设置为零,那么最终的字节数确实会减少。但是,只有使用原始/教科书时,这应该是正确的RSA-即对明文应用填充模式的

RSEngine(bcprovjdk16-1.45.jar)类中的processBlock方法返回的字节[]大小不同,原因可能是什么。(在运行同一版本java的两台不同机器上,一种情况下为127,另一种情况下为128,[1.7,64位]使用相同的公钥进行加密,使用相同的私钥进行解密,以及使用相同的数据进行解密。

基本上,如果我看一下源代码,那么如果输入的大小不同,或者如果输入前面的字节数设置为零,那么最终的字节数确实会减少。但是,只有使用原始/教科书时,这应该是正确的RSA-即对明文应用填充模式的RSA。教科书中的RSA不应直接用于加密消息(可能包含任何内容)


要解决这个问题,请使用填充模式,如PSS或PKCS#1 v1.5,可能与AES结合使用混合密码系统。

这可能是填充模式。请共享一些代码,否则我认为您不必猜太多。不知道,但我与一位同事一起在Bouncy Castle的DH程序中发现了一个错误他们忘记正确实现I2OSP函数(即整数到八位字节字符串原语),其中整数的格式为与密钥大小相同的大端、无符号、左填充八位字节字符串。这可能是同一类型的问题。该死,无法为以前的版本创建到FTP下载页的连接。@owlstead:旧内容似乎也是。