2017-10-17 2 views
-4

this commentとコメントhereと表示されているので、私たちは自分のPHP機能を使用してMySQLにパスワードを設定しないのですか?PHPが組み込まれているか、またはMySQLのパスワード用にユーザ定義の関数

パスワードを暗号化するのは良い考えではなく、代わりにPHP組み込み関数を使用する必要があります。同様にpassword_hash() & password_verify()

私は自分自身を作成するとどうなりますPHPの機能?例えば

HI HOW ARE YOU?ためのセキュアコードは、私は関数でarrayを使用zq1zag1ewn1:a>!

であるべきです。

コードは次のように書きます:

$txt = "HI HOW ARE YOU?"; 
$trans = array(" " => "1", "H" => "z", "C" => "f", "I" => "q", "O" => "a", "W" => "g", "A" => "e", "R" => "w", "E" => "n", "Y" => ":", "U" => ">", "?" => "!"); 
    $change = strtr($txt, $trans); 
    echo $change; 

は私の代わりに私の機能のPHP in-built functionを使用する理由を得ることができますか?

+2

組み込み関数は、実際の使用のために作成され、優れた暗号化algorythmsを実行しています。あなた自身の暗号化機能がこれらの非常に重要な機能を持っていない可能性があります –

+2

パスワードを暗号化する独自の機能を作れば、おそらく非常に安全ではないものを書いていきます。相違点を理解するためにセキュリティについて十分に分かっていないことを示すハッシュ。 –

+2

サンプルコードでは、簡単な代替暗号が数秒で壊れる可能性があります。ナポレオンのVignere暗号と同じくらい安全ではない –

答えて

5

私の機能の代わりにPHP組み込み関数を使用する理由はありますか?

あなたのアプローチは恐ろしく安全で、手で働いても、第二次世界大戦時代のcodebreakersによって破壊されただろう - おそらくfrequency analysisのようなものを使用しました。地獄、the ancient Romans (possibly even earlier, but they're the earliest documented) invented your fundamental technique

roll your own cryptoの理由です。あなたはそれを台無しにする可能性が高いです。あなたは安全であると思われるものを書くのがいかに簡単かを実証しましたが、最近のコンピュータでは何ミリ秒もかけて壊れる可能性があります。

あなたが専門家のcryptologistsのチームでない場合は、あなたのソリューションは、おそらく専門家のcryptologistsの実際チームから数十年前の、テストされ、査読ソリューションほど良好ではありません。

も参照してください:

+0

(単純なWebサーバの設定ミスにより、PHPコードが公開される可能性があります。これにより、攻撃者はすべてのパスワードを解読することができます)。 – ceejayoz

+0

パスワードのハッシュでは、パスワードの妥協は*できません。 () 'OR' password_verify() '? –

+0

@チルルあなたは両方が必要です、彼らは異なったことをします。ドキュメントを読む。 – ceejayoz

関連する問題