RSA dalam javascript berbeda dengan PHP

Saya punya masalah dengan RSA sekarang. Saya memiliki modulus dan eksponen yang sama dalam Javascript dan PHP., keduanya menggunakan PKCS#1 dalam javascript, saya menggunakan http://www-cs-students.stanford.edu/~tjw/jsbn/rsa.js

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

dan di PHP, saya menggunakan 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);

Tapi 2 hasilnya berbeda. Adakah yang bisa tolong beri tahu saya alasannya. Terima kasih banyak


person Summer Nguyen    schedule 24.07.2012    source sumber


Jawaban (1)


Mereka berbeda karena PKCS#1 menggunakan padding acak.

Lihat URL berikut:

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

Tekan enkripsi beberapa kali. Ciphertext yang dihasilkan akan berbeda setiap saat.

Yang penting adalah Anda dapat mendekripsinya - bukan teks sandinya yang berbeda.

person Community    schedule 26.07.2012
comment
Terima kasih banyak. Aku mengerti itu . - person Summer Nguyen; 16.09.2012
comment
Tapi serius, jangan menggunakan padding PKCS#1. - person Scott Arciszewski; 06.03.2016