はじめまして、PMをやっているtatsukenと申します。はじめまして
研修の一環でvue.js、expressを書くことがあったので、そのことを中心にまとめていきたいと思います
#はじめに
パスワードをデータベースに保存するときにはその情報をハッシュ化する必要があります。
なぜパスワードをハッシュ化しないといけないかなどを詳しく知りたい方はこちらを参考にしてみてください。
今回はbcryptというライブラリを使ってデータのハッシュ化を行って行きたいと思います。
##実装
###インストール
npm install bcrypt -s
###パスワードのハッシュ化
まずExpress内の自分がデータをハッシュ化したいファイル内で以下のように記述してください
const bcrypt = require('bcrypt');
const password = "hoge";
let hashed_password = bcrypt.hashSync(password, 10);
console.log(hashed_password);
"hoge"
という文字列がランダムな文字に変換されています。
###ハッシュ化されたパスワードの照合
ハッシュ化されたパスワードと自分の知っているパスワードの照合を行っていきます
const bcrypt = require('bcrypt');
bcrypt.compareSync("hoge", hash_password) // =>ture
bcrypt.compareSync("fake_hoge", hash_password) // =>false
-
hash_data
はもともと"hoge"
をハッシュ化したものなので、bcrypt.compareSync(hash_data, "hoge")
はtrueとなります。 -
bcrypt.compareSync(hash_data, "fake_hoge")
はハッシュ化される前のデータと比較されているデータ(今回は"hoge"
とface_hoge
を比較している)が異なるのでfalseとなる。
#最後に
今回は非常に簡単なhash化の方法をご紹介しました。
もっと詳しいことが知りたい場合はこちらを参照ください。callbackやasync/awaitでエラーハンドリングを行うことも出来ます。
なにか間違いなどありましたら指摘していただけると幸いです。