セキュリティにて大事なパスワードのHash化のやり方
Hashアルゴリズム
パスワードのhash化
- モジュール:
htpasswd
をインストールする - 下記コマンドを実行する
htpasswd -D users.htpasswd admin htpasswd -D users.htpasswd guest1 htpasswd -bB users.htpasswd admin apple htpasswd -bB users.htpasswd guest1 1234
htpasswd -D
にて、指定したユーザーのパスワードを削除
htpasswd -bB
にて、指定したユーザーのパスワードをbcrypt
アルゴリズムでHash化する
ランダムパスワードの生成
brute-forceでpasswordを当てられないためにも、パスワードをランダム生成するutilを生成しておくと楽
下記のコードで生成したパスワードに対して、上記のhtpasswd
コマンドでパスワードを置き換えておくと良い。
'use strict'; const length = 12; const charset = 'abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '0123456789'; function passwordGenerator() { let password = ''; // characterでランダムな文字列をを作成 for (let i = 0; i < length; i++) { password += charset[Math.floor(Math.random() * charset.length)]; } // regexで小文字、大文字、英字と数字が存在するかどうかチェック // 上記のケースにマッチするまで処理を続行 const includeAllTypes = /[a-z]/.test(password) && /[A-Z]/.test(password) && /[0-9]/.test(password); return includeAllTypes ? password : passwordGenerator(); } console.log(passwordGenerator());