🔑

JavaScriptでsha256を使って暗号化する

2021/08/19に公開

はじめに

暗号化をする場面ってだいたいどのプロジェクトでもあると思います。
ということで、簡単にやってみます。

nodeの標準モジュールを使って暗号化

nodeには標準モジュールとして「crypto」というモジュールがあります。
https://nodejs.org/api/crypto.html
これを使うと、このような感じになります。

import {createHash} from 'crypto'

const encryptSha256 = (str) => {
    const hash = createHash('sha256');
    hash.update(str);
    return hash.digest('hex')
}

conencryptSha256('test');

createHashではHashクラスのインスタンスが返却されます。
https://nodejs.org/api/crypto.html#crypto_class_hash
Hashインスタンスの使い道としては、

  1. ストリーム
  2. ハッシュ値の算出
    の二つがあると書いてあります。

で、次につながる「update」では、先程作ったHashインスタンスに引数を入れます。
イメージ的には、ドロップレットにファイルをドラッグ&ドロップするようなイメージ?ですかね?
最後の「digest」では指定したエンコーディングで上記のHashインスタンスをエンコードしてくれます。
今回は「hex」を指定しているので、文字列が返ってきます。

crypto-jsでやってみる

var SHA256 = require("crypto-js/sha256");

const encryptSha256 = (str) => {
    const hash = SHA256("test");
    return hash.toString()
}

先程のnodeのcryptoでやったことをcrypto-jsで再現すると上記のようになります。
ちょっとだけ短いですが、どちらもやろうと思えばワンライナーでいけますね。

まとめ

この程度なら、ライブラリ使うまでもないと思いました。

Discussion