2016-11-28 6 views
0

私のクライアントは、協力を拒否した他の開発者が開発したウェブサイトのバックエンドにログインするパスワードを忘れました。したがって、私はそこから直接パスワードを取得できるかどうかを調べるためにSQLデータベースに行きましたが、パスワードが暗号化されているようです。私はちょうど新しいパスワードを暗号化し、SQLに追加することができるように、パスワードは暗号化された方法を知っていた場合、私は、コードを見たときにPHP Salt password encryption

3a0606b25e75eb6c1fed61886844832e

下記参照それは、パスワードの変更に(容易になるだろうPHP gile)には、このウェブサイトのパスワードを暗号化するsalt_passというものがあります。コードの下を参照してください:

ここ
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
$db = new database(); 
$option_uw = array(
    "table" => "users", 
    "fields" => "password", 
    "condition" => "id='{$_POST['id']}'" 
); 
$query_uw = $db->select($option_uw); 
$rs_uw = $db->get($query_uw); 
if ($rs_uw['password'] == trim(salt_pass($_POST['oldpassword']))) { 
    $value_pw = array(
     "password" => trim(salt_pass($_POST['pass'])) 
    ); 
    $query_pw = $db->update("users", $value_pw, "id='{$_POST['id']}'"); 

    if ($query_pw == TRUE) { 
     header("location:" . $baseUrl . "/back/user"); 
    } 
}else{ 
    $_SESSION[_ss . 'msg_result'] = TRUE; 
    header("location:" . $baseUrl . "/back/user/changepassword"); 
} 
mysql_close(); 
} 

があるsalt_pass機能

私はこのコードに応じて再生成したり、新しいパスワードを暗号化することができますどのように
function salt_pass($pass) { 
    return md5("supapongherb.com" . $pass); 
} 

は誰もが知っていますか?

PS。ウェブサイトはMVCプログラミングで開発されており、私は本当にそれが可能です。より多くのファイルを表示したい場合はお知らせください。

ありがとうございます!

+2

'insert'構文を見れば、パスワードの生成方法を知ることができます。おそらくハッシュされていて、ハッシュは暗号化されていないため、デハッシュすることはできません。 – chris85

+0

私はこの機能を発見しました。私は次に何をすべきか分かりません。 関数salt_pass($ pass){ return md5( "supapongherb.com"。$ pass); } – scottymorg

+0

(旧式の)ハッシングアルゴリズムと使用された塩を知っているので、新しいパスワードを生成できます。あなたはそれをPHPする必要はありません。 'update user set password = md5(concate(" supapongherb.com "、 'NEWPASSWORD'))ここでuserid = ??'となります。そのようなもの – chris85

答えて

5

はのは

をいくつかのことをクリアしてみましょうが、パスワードが

まず暗号化されているようです、あなたのパスワードは暗号化されていないをハッシュされます。 There is a difference。つまり、ハッシュは一方向性を意味します。ハッシュを見てからパスワードを再生成する方法はありません。

第2に、彼らはMD5を使用しています。彼らは実際に何かを塩ではない、彼らはすべてのパスワードに同じ文字列を追加しているし、それをハッシュしている。 MD5はterrible way to hash because it's stupid easy to breakです。これは、フロントドアをゴム製のバンドで固定するのと同じです。の数百万の推測をにすることができるため、安全ではありません。はい、それは悪いです。

第三に、(私は彼らが使用している変にORMの種類を推測していないよので、SQL経由)機能と知られている「塩」で、あなたは簡単にこのように新しいパスワードを作ることができ

UPDATE users 
SET password = MD5(CONCAT('supapongherb.com', 'new_password_here')) 
WHERE id = their_user_id_here 

第4に、password_hashに切り替えます。今のような。ラバーバンドを取り除き、その猛烈なピットブルとラップのショットガンでデッドボルトにアップグレードしてください。