Skip to content

Instantly share code, notes, and snippets.

@taktamur
Last active May 24, 2020 05:35
Show Gist options
  • Save taktamur/0d64d8e412d07d7c5508190d22375c9b to your computer and use it in GitHub Desktop.
Save taktamur/0d64d8e412d07d7c5508190d22375c9b to your computer and use it in GitHub Desktop.
node.jsで暗号化と復号の実験
const crypto = require("crypto");
const algorithm = "aes-128-ecb"; //ecbモードは前のブロックを使わない単純な暗号利用モードらしい。なのでivが不要
const key = "keykeykeykeykeyk"; // keyは16バイトきっちり必要
const cipher = crypto.createCipheriv(algorithm, key, null); // aes-128-ecbの場合、iv指定が不要(使わないから)
let encrypted = cipher.update("1234567890123456", "utf8", "hex"); // utf8->hex
console.log(encrypted); // 平文が15バイトだと、ここは空出力になる。16バイトあると出力される
encrypted += cipher.final("hex");
console.log(encrypted);
const decipher = crypto.createDecipheriv(algorithm, key, null);
let decrypted = decipher.update(encrypted, "hex", "utf-8"); // hex -> utf-8
console.log(decrypted); // 平文が15バイトだと、ここは空出力になる。16バイトあると出力される
decrypted += decipher.final("utf-8");
console.log(decrypted);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment