Я пытаюсь расшифровать файл header.rias с помощью закрытого ключа myprivate.pem
.
Это мой код:
var {
privateDecrypt,
createPrivateKey,
createDecipheriv,
createCipheriv,
randomBytes,
publicEncrypt,
KeyObject,
crypto,
constants,
} = require("crypto");
var path = require("path");
const { RSA_PKCS1_PADDING } = constants;
var decryptStringWithRsaPrivateKey = function (
toDecrypt,
relativeOrAbsolutePathtoPrivateKey
) {
var absolutePath = path.resolve(relativeOrAbsolutePathtoPrivateKey);
var privateKey = fs.readFileSync(absolutePath, "utf8");
var buffer = Buffer.from(toDecrypt, "base64");
//var decrypted = crypto.privateDecrypt(privateKey, buffer);
const decrypted = privateDecrypt(
{
key: privateKey,
padding: RSA_PKCS1_PADDING,
},
buffer
);
return decrypted.toString("utf8");
};
var encryptedFile = fs.readFileSync("header.rias", "utf8");
let b = decryptStringWithRsaPrivateKey(encryptedFile, "myprivate.pem");
Но я получаю следующую ошибку:
internal/crypto/cipher.js:63
return method(data, format, type, passphrase, buffer, padding, oaepHash,
^
Error: error:0407109F:rsa routines:RSA_padding_check_PKCS1_type_2:pkcs decoding error
at internal/crypto/cipher.js:63:12
at decryptStringWithRsaPrivateKey (C:\wamp64\www\node-enc\demo.js:388:21)
at Object.<anonymous> (C:\wamp64\www\node-enc\demo.js:429:9)
at Module._compile (internal/modules/cjs/loader.js:1151:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
opensslErrorStack: [
'error:04065072:rsa routines:rsa_ossl_private_decrypt:padding check failed'
],
library: 'rsa routines',
function: 'RSA_padding_check_PKCS1_type_2',
reason: 'pkcs decoding error',
code: 'ERR_OSSL_RSA_PKCS_DECODING_ERROR'
}
Просто чтобы вы знали, шифрование использовалось с использованием AES 256.
Однако, если я использую RSA_NO_PADDING
вместо RSA_PKCS1_PADDING
, ошибка исчезнет и будет выведен файл расшифровки будет что-то вроде этого:
�Z�K��]�y��'�>g�|r~�6�)[5�A_J˧��\[�d胮ϐ���~TL7��w���4\��_�����@�Z�J�&W1 �R1�Ob�Wx�K�]�3��J���b�u�_�A�9t��ؘ*v/�s���������9
ս;?jW�6�]O"�+���2wV�'�CV5�"3C�J\�}����}C��;�
\+p�p>��zb���w Y�7O��P+
STm�H�������KS�i{C`�b$�
ax"�ܹA���
�{e�+%�1��p�f$�zܮ;4��*�x>��f^y4Z��el����&�*�� g(Ex �'�F�ZZ�Z�·�@��<���눋�>���^���!R����Z�D���N��H|�����p
�LQ5��K��P�.DFU��C �c�//^o�P�[$̛a[.o!�86yܥ�
Я новичок в криптографической области, так что делать дополнения? также, означает ли это, что это результат дешифрования?