使用時:
$con = mysql_connect('localhost','user','password')
パスワード部分を別の場所に保存する利点について読みました ( https://stackoverflow.com/a/3354457/1704651 )。
私は PHP にかなり慣れていないので、MySQL パスワードを保存する方法が安全かどうかを知りたいです。
- ステップ 1、長い MySQL データベース パスワードを選択します ( https://www.random.org/passwords/?num=1&len=24&format=html&rnd=new )
ステップ 2、これを /outsidewebroot/salt.php に入れます (私の実際のソルトはもっと長いです)
<?php $salt = sdcjbdt8veADJbyuQxsfJtYeW7tC5; ?>
ステップ 3: 一時 PHP ファイル (使用後に削除されます) を使用してパスワードをエンコードします。
$decrypted = "my decrypted MySQL password" $key = $salt; $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $decrypted, MCRYPT_MODE_CBC, md5(md5($key)))); var_dump($encrypted);
ステップ 4、このコードを .htaccess に入れます
SetEnv encrypted-password i3NOByNkztBtEbJ8LJMt2GbX9VjMzO2MTYtBXsxyYVI=
ステップ 5、データベースに接続する必要がある場所に次のコードを配置します。
require_once("../../outside-webroot/salt.php") $key = $salt $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted-password), MCRYPT_MODE_CBC, md5(md5($key))), "\0"); $con = mysql_connect('localhost','user',$decrypted)
/outsidewebroot/salt.php のソルトは、データベースでパスワードのハッシュに使用するものと同じなので、2 回使用するために一度だけ含める必要があります。
ここで見た暗号化/復号化方法: http://ideone.com/yQIAX
この方法も見ました: https://stackoverflow.com/a/3354457/1704651暗号化/復号化方法の代わりにハッシュを使用します。
私の方法についてご意見をお寄せいただきありがとうございます。