0

内部的な理由から、サードパーティのアカウント用のパスワードをデータベースに格納する必要があるため、パスワードを簡単に復元できないため、実際にはハッシュを使用できません。データベースの安全な平文パスワード

プレーンテキストのパスワードを暗号化する方法はありますか?潜在的なハッカーがmysqlテーブルを持っていても簡単にパスワードを取得できないのですが、元のフォームを見るためにそれを復号化できますか?

+0

なぜパスワードを回復できる必要がありますか? –

+0

これを読んでください:https://www.troyhunt.com/lessons-in-website-security-anti/ –

+0

これらはサードパーティのウェブサイトのアカウントであり、必要なときにログインできる必要があるためです。 – maddo7

答えて

1

パスワードを解読することはおすすめできません。しかし、あなたの要求がであれば、単純に文字列の暗号化または復号化メソッドを使用するよりも簡単です。

私は最近、文字列を暗号化または復号化するために以下の関数を使用しました。 URLを保護するため。この暗号化または復号化機能を使用して、GETメソッド要求を使用している間にURLを保護することもできます。あなたの目的のためにそう

<?php 
define("ENCRYPTION_KEY", "[email protected]#$%^&*"); 
$string = "Plain Text"; 

echo $encrypted = encrypt($string, ENCRYPTION_KEY); 
echo "<br />"; 
echo $decrypted = decrypt($encrypted, ENCRYPTION_KEY); 

// this function will return encrypted string 
function encrypt($pure_string, $encryption_key) { 
    $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); 
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    $encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv); 
    return $encrypted_string; 
} 

// this function will return encrypted string 
function decrypt($encrypted_string, $encryption_key) { 
    $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); 
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    $decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv); 
    return $decrypted_string; 
} 
?> 

データベース でこの暗号化機能ストアプレーンテキストを使用して、別の関数を使用して、それを取り出します。

+0

ECBモードは実際には決して良い選択ではありません。IVをまったく使用しないので、 'mcrypt_get_iv_size(MCRYPT_BLOWFISH、MCRYPT_MODE_ECB)'の結果は常にゼロになります。 – martinstoeckli

+0

何を使用することをお勧めしますか? – maddo7

関連する問題