LoginSignup
3
3

More than 1 year has passed since last update.

【Vue】crypto-jsを用いて暗号化したデータをLocalStorageに保存する

Last updated at Posted at 2021-08-28

はじめに

「Vuexに保持してあるデータはリロードすると消えるのかい?!」
「でもLocalStorageにそのまま保存するのは危険ではないかい?!」
 \じゃあ暗号化しよう!/

ということで、暗号化したデータをLocalStorageに保存する方法をご紹介します。

使用するライブラリ

crypto-js

参考: CryptoJS

インストール

npm install crypto-js

もしくは

yarn add crypto-js

TypeScript環境では、上記だけだと怒られてしまうので、以下を実行しましょう

npm install --save @types/crypto-js

もしくは

yarn add @types/crypto-js

実装

sample.ts
import crypto from 'crypto-js';

// 暗号化する
const ecrypted = crypto.AES.encrypt('暗号化したいデータ', '任意の暗号化フレーズ');

// LocalStorageに保存する
// 注意!:暗号化した値を使用する時は、toString()を忘れずに
localStorage.setItem('ecryptedData', ecrypted.toString());

// LocalStorageから取り出す
const ecryptedData = localStorage.getItem('ecryptedData')

// 復号する
// 注意!:復号化した値を使用する時は、エンコードを忘れずに
const decrypted = crypto.AES.decrypt(ecryptedData, '任意の暗号化フレーズ');
console.log(decrypted.toString(crypto.enc.Utf8));

注意点

上でも書いておりますが、

暗号化した値を使用する時は、toString()を忘れずに。
復号化した値を使用する時は、エンコード = toString(crypto.enc.Utf8)を忘れずに。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3