https://www.websec-room.com/2015/03/15/2153
こちらのサイトを参考に、手打ちでコピーして、自分で調整できるところは調整して
ポートフォリオに利用させてもらおうと考えています。
<?php define("DNS","mysql://user01:pass@localhost/Test?charset=utf8"); define("SERVER","192.168.11.11"); define("SENDER_EMAIL","root@localhost"); define("STRETCH_COUNT" , 1000); /* CSRFトークン作成 */ function get_csrf_token(){ $TOKEN_LENGTH = 16; $bytes = openssl_random_pseudo_bytes($TOKEN_LENGTH); return bin2hex($bytes); } /* パスワードのソルト+ストレッチング */ function stretchedPassword($salt,$password){ $hash_pass=""; for($i = 0; $i<STRETCH_COUNT; $i++){ $hash_pass = hash("sha256",($hash_pass . $salt . $password)); } return $hash_pass; } /* ソルト作成 */ function get_salt(){ $TOKEN_LENGTH = 4;//4*2=8byte $bytes = openssl_random_pseudo_bytes($TOKEN_LENGTH); return bin2hex($bytes); } /* URLの一時パスワード作成 */ function get_url_password(){ $TOKEN_LENGTH = 16;//16*2=32byte $bytes = openssl_random_pseudo_bytes($TOKEN_LENGTH); return hash("sha256",$bytes); }
defineで定義する定数の2つ目をつける意味がいまいちわからないので教えていただきたいです。
(後のソースコード読めばある程度わかるようだったら申し訳ないです)
パスワードのソルト+ストレッチング以下の項は、
「体系的に学ぶ安全なwebアプリケーションの作り方」を買ってあるので、
そちらを読んで理解しようと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/31 10:05
退会済みユーザー
2017/08/01 00:29 編集
退会済みユーザー
2017/08/01 12:18