備忘録

備忘録

JavaScriptでAESで暗号化と複合する方法

Ⅰ. はじめに

タイトルの通り「JavaScriptでAESで暗号化と複合する方法」です。

Ⅱ. やり方

1. crypto-jsをインストールする
npm i crypto-js
2. サンプルプログラムを書く
import CryptoJS from 'crypto-js'

const key = CryptoJS.enc.Utf8.parse('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
const iv = CryptoJS.enc.Utf8.parse('bbbbbbbbbbbbbbbb')
const str = 'helloworld'

// 暗号化する
let encryptedWordArray = CryptoJS.AES.encrypt(str, key, {
  mode: CryptoJS.mode.CBC,
  padding: CryptoJS.pad.Pkcs7,
  iv: iv
})

// base64に変換する
// const encryptedBase64String = encryptedWordArray.ciphertext.toString(CryptoJS.enc.Base64)
const encryptedBase64String = encryptedWordArray.toString()
console.log(encryptedBase64String)

// base64からwordarrayに変換する
encryptedWordArray = CryptoJS.enc.Base64.parse(encryptedBase64String)

// 複合する
const decryptedWordArray = CryptoJS.AES.decrypt({ciphertext: encryptedWordArray}, key, {
  mode: CryptoJS.mode.CBC,
  padding: CryptoJS.pad.Pkcs7,
  iv: iv
})
console.log(decryptedWordArray.toString(CryptoJS.enc.Utf8))

実行結果

PH9Cv3Wc46V0EQxB77JPFA==
helloworld