3
,我發現了錯誤"Error: error:0406C06E:rsa routines:RSA_padding_add_PKCS1_type_1:data too large for key size"
當我這樣做:收到錯誤「數據太大,關鍵尺寸」與加密的Node.js
var crypto = require('crypto');
var fs = require('fs');
var first_keys = {
public_key: fs.readFileSync('tests/public.key'),
private_key: fs.readFileSync('tests/private.key')
}
var first_result = crypto.privateEncrypt({
key: first_keys.private_key
}, new Buffer("Hello World!"));
var second_result = crypto.privateEncrypt({
key: first_keys.private_key
}, first_result);
var second_plaintext = crypto.publicDecrypt({
key: first_keys.public_key
}, second_result);
var first_plaintext = crypto.publicDecrypt({
key: first_keys.public_key
}, second_plaintext);
if(first_plaintext == new Buffer("Hello World!"))
console.log("Hello World!");
我知道這是不可思議的,但我創建一個過程,要求這個工作n次迭代(對n個密鑰進行私有加密,對n個密鑰進行公開解密)。我正在使用一個密鑰進行測試。
真棒,謝謝。任何想法爲什麼當ref_first_plaintext ==新緩衝區(「Hello World!」)'不等於? – arturojain
是的,因爲你需要使用'buf1.equals(buf2)'。 'Buffer'不是默認的JavaScript對象,所以不能直接比較。 –
謝謝,很多。你真棒。 – arturojain