我正在尝试使用 node.js 加密模块加密文本。
这是代码:
const crypto = require('crypto');
const password = 'password';
const key = crypto.scryptSync(password, 'salt', 24);
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
var encrypted = cipher.update("Hello", 'utf8', 'hex') + cipher.final('hex');
console.log(encrypted);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
internal/crypto/cipher.js:103
this[kHandle].initiv(cipher, credential, iv, authTagLength);
^
Error: Invalid key length
[90m at Cipheriv.createCipherBase (internal/crypto/cipher.js:103:19)[39m
[90m at Cipheriv.createCipherWithIV (internal/crypto/cipher.js:121:20)[39m
[90m at new Cipheriv (internal/crypto/cipher.js:225:22)[39m
[90m at Object.createCipheriv (crypto.js:117:10)[39m
at Object.<anonymous> (F:\Misc\App\MySQL-Buzzer-Electron\demo.js:7:23)
[90m at Module._compile (internal/modules/cjs/loader.js:1156:30)[39m
[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)[39m
[90m at Module.load (internal/modules/cjs/loader.js:1000:32)[39m …Run Code Online (Sandbox Code Playgroud)