0

我现在遇到了 RSA 的问题。我在 Javascript 和 PHP 中具有相同的模数和指数。在 javascript 中都使用 PKCS#1,我使用http://www-cs-students.stanford.edu/~tjw/jsbn/rsa.js

var rsa = new RSAKey();
rsa.setPublic("modulus","ex");
var result = rsa.encrypt(text);

在 PHP 中,我使用http://phpseclib.sourceforge.net/

require_once 'Crypt/RSA.php';
$rsa = new Crypt_RSA();
$n="modulus";
$e="ex";
$rsa->modulus= new Math_BigInteger($n,16);
$rsa->publicExponent= new Math_BigInteger($e,16);
$key=$rsa->getPublicKey();
$rsa->loadKey($key);
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt("1234");
echo bin2hex($ciphertext);

但是2个结果不同。有谁能告诉我原因。非常感谢

4

1 回答 1

5

它们是不同的,因为 PKCS#1 使用随机填充。

查看以下网址:

http://www-cs-students.stanford.edu/~tjw/jsbn/rsa.html

多次点击加密。生成的密文每次都会不同。

重要的是您能够解密它 - 而不是密文不同。

于 2012-07-26T18:23:32.813 回答