1

暗号化のこの部分を解読する可能性または簡単な方法はありますか?

$mixpw .= chr((int) ((sqrt( (ord($_POST['passwd'][$i]) << 2) * 974169 * (ord($_POST['passwd'][$i]))) >> 1) / (314.33 * 3.14)) + 2.12);

ビットごとのシフトのため、私には複雑すぎるようです。

これは、暗号化の完全なコードです。

$mixpw = '';
$curM = 0;
for($i = 0; $i < strlen($_POST['passwd']); $i++) {
    if($curM == 0) {
        $mixpw .= ($i+2 < strlen($_POST['passwd'])) ? $_POST['passwd'][$i+2] : $_POST['passwd'][$i];
    } else if($curM == 1) {
        $mixpw .= chr((0x46+$i) % 254) . $_POST['passwd'][$i];
    } else if($curM == 2) {
        $mixpw .= ucfirst($_POST['passwd'][$i-2]);
    } else if($curM == 3) {
        $mixpw .= chr((int) ((sqrt( (ord($_POST['passwd'][$i]) << 2) * 974169 * (ord($_POST['passwd'][$i]))) >> 1) / (314.33 * 3.14)) + 2.12);
    }
    $curM = ($curM+1 > 3) ? 0 : $curM+1;
}

暗号化されたパスワードはCG3ST3KTです。

元のパスワードの最初の 3 文字を取得することができました: s3C

4

1 に答える 1

0

私は解決策を思いつきました!最初の 3 つの暗号化は、解読するのがそれほど難しくありません。
しかし、4 番目の問題を解決するために、暗号化コードをコピーして、最初の 3 つの文字に続くいくつかの文字を推測しようとしました。正しい暗号化を取得するまで、これを推測するのにそれほど時間はかかりません。
最終的に、この暗号化のパスワードはs3CReTになります。

于 2013-03-18T17:37:16.413 に答える