RSA JS PIDCrypt шифрование Java расшифровка
Я пытаюсь зашифровать простое сообщение с помощью pidCrypt в браузере, а затем расшифровать его с помощью Java-шифрования на сервере. Но я продолжал получать сообщение об ошибке:
javax.crypto.IllegalBlockSizeException: данные не должны быть длиннее 128 байт
Ключи:
ключи генерируются с помощью openssl genrsa (sslery). Затем закрытый ключ преобразуется в формат pkcs#8 der и считывается в код Java
Фрагмент кода JS:
/*---* ENCRYPT: RSA 1024 bit ---------*/
// public key
var params = certParser(publickey);
var key = pidCryptUtil.decodeBase64(params.b64);
// new RSA instance
var rsa = new pidCrypt.RSA();
/* RSA encryption
* get the modulus and exponent from certificate (ASN1 parsing)
* pem(Array of Bytes)
*/
// ASN1 parsing
var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key));
var tree = asn.toHexTree();
// setting the public key for encryption with retrieved ASN.1 tree
rsa.setPublicKeyFromASN(tree);
/*** encrypt */
var crypted = rsa.encrypt(plaintext);
//var crypted64 = pidCryptUtil.encodeBase64(crypted);
фрагмент кода Java:
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, myPrivKey);
byte[] descryptedData = cipher.doFinal(cyphertext.getBytes());