PHP の MD5 暗号化の 16 ビットと 32 ビットの実装コードについて、インターネットで検索すると多くの人が混乱していました。後で解決策を見つけたので、コードを記録します。以下の通り:
<?php echo substr(md5("admin"),8,16); // 16位MD5加密 echo "<hr>"; echo md5("admin"); // 32位MD5加密 ?>
16 ビット MD5 暗号化は、substr 関数を使用して文字をインターセプトすることによって実装されます....
これ以上掘り下げたくない :) 他の重要な場所に知恵を注がなければなりません ~~今日mssql データベースへの php リンクを作成し、データベース内のテーブルのフィールドに MD516 暗号化を使用しました。ただし、PHP のデフォルトの MD5 は 32 ビットであるため、ログイン プログラムが md5 暗号化を使用してテーブル内のフィールドを照合することができません。後でオンラインで検索すると、解決策が見つかりました。正しいので、録音しました。
substr 関数を使用してインターセプトします:
substr(md5("admin"),8,16); // 16 ビット MD5 暗号化
md5("admin"); // 32 ビット MD5 暗号化
によってテストされた結果このサイトは次のとおりです:
ASP で複数の md5 ファイルの結果を比較してみましょう。 添付ファイル: MD5 暗号化ファイルに遭遇し、パスワードがわからない場合は、データベース内のこの暗号化されたデータのセットを置き換えてください。
管理者---16ビット暗号化---7a57a5a743894a0e
管理者---32ビット暗号化---21232f297a57a5a743894a0e4a801fc3
管理者---40ビット暗号化---7a57a5a743894a0e4a801fc3438 801fc3
substr(md5("管理者"), 8,16) ; // 16 ビット MD5 暗号化は、8 文字目から始まる 16 文字が上記の 32 文字となります。したがって、一意性の問題を考慮する必要はありません。それ自体は正しいです。インターネット上の誰かが php5 がサポートしていると言っています
コードは次のとおりです:
echo md5("admin",true);//返回16位,不过这是在PHP5里才有。