CodesInChaosですでに述べたように、SHA256を使用するHMACは、値をハッシュするためにのみ使用できます。これは、片道のみです。暗号化/復号化できるようにする場合は、aes
またはなどの暗号を使用する必要がありますdes
。
暗号化/復号化の例:
const crypto = require("crypto");
// key and iv
var key = crypto.createHash("sha256").update("OMGCAT!", "ascii").digest();
var iv = "1234567890123456";
// this is the string we want to encrypt/decrypt
var secret = "ermagherd";
console.log("Initial: %s", secret);
// create a aes256 cipher based on our password
var cipher = crypto.createCipheriv("aes-256-cbc", key, iv);
// update the cipher with our secret string
cipher.update(secret, "ascii");
// save the encryption as base64-encoded
var encrypted = cipher.final("base64");
console.log("Encrypted: %s", encrypted);
// create a aes267 decipher based on our password
var decipher = crypto.createDecipheriv("aes-256-cbc", key, iv);
// update the decipher with our encrypted string
decipher.update(encrypted, "base64");
console.log("Decrypted: %s", decipher.final("ascii"));
注:暗号/暗号を独自の変数に保存する必要があります。また、の.final
後に連鎖しないように注意して.update
ください。
システムで使用可能な暗号を知りたい場合は、次のコマンドを使用します。
openssl list-cipher-algorithm