-
- //反復アルゴリズム
- function md5_1_1($data, $times = 32)
- {
- //MD5を使用したループ
- for ($i = 0; $i < $times; $ i++) {
- $data = md5($data);
- }
- return $data;
- }
- //再帰アルゴリズム
- function md5_1_2($data, $times = 32)
- {
- if ($times > 0) {
- $data = md5($data);
- $times--;
- return md5_1_2($data, $times); //再帰を実装します
- } else {
- return $data;
- }
- }
- ?>
コードをコピー
変換 2: 暗号文分割 MD5
-
- //暗号文を 2 つのセクションに分割し、各セクションには 16 文字があります
- function md5_2_1($data)
- {
- //最初にパスワードを 32 文字のパスワードテキストに暗号化します
- $data = md5($data);
- //パスワードを 2 つのセクションに分割します
- $left = substr($data, 0, 16);
- $right = substr($data, 16, 16);
- / /Encrypt個別に結合してからマージします
- $data = md5($left).md5($right);
- //最後に、長い文字列を再度暗号化して 32 文字の暗号文になります
- return md5($data);
- }
- //暗号文を 32 のセグメントに分割し、各セグメントは 1 文字です
- function md5_2_2($data)
- {
- $data = md5($data);
- //ループして暗号文の各文字をインターセプトして暗号化します。Connect
- for ( $i = 0; $i <32; $i++) {
- $data .= md5($data{$i});
- }
- //このとき、$data の長さは 1024 文字ですMD5 操作を実行します
- return md5($data);
- }
- ?>
-
コードをコピー
変換 3: 追加の文字列干渉
-
- //元データの末尾に追加文字列
- function md5_3_1($data, $append)
- {
- return md5($data.$append);
- }
- //追加文字 元データの先頭の文字列
- function md5_3_2($data, $append)
- {
- return md5($append.$data);
- }
- //元データの先頭と末尾の追加文字列
- function md5_3_3($data, $ append)
- {
- return md5($append.$data.$append);
- }
- ?>
コードをコピー
変換 4: 大文字小文字変換の干渉
PHP が提供する md5() 関数によって返される暗号文内の英字はすべて小文字であるため、それらをすべて大文字に変換してから MD5 操作を実行できます。
-
- function md5_4($data)
- {
- //最初にパスワードの暗号文を取得します
- $data = md5($data);
- //次に、パスワード内のすべての英語文字を変換しますciphertext 大文字の場合
- $data = strtotime($data);
- //最後に別の MD5 操作を実行し、return
- return md5($data);
- }
- ?>
コードをコピー
変換 5: Character弦の順序の干渉
MD5 操作後の暗号文文字列の順序を逆にして、再度 MD5 操作を実行します。
-
- function md5_5($data)
- {
- //データの暗号文を取得
- $data = md5($data);
- //暗号文文字列の文字順序を反転します
- $data = strrev($data);
- //最後に別の MD5 操作を実行し、
- return md5($data);
- }
- ?>
-
コードをコピー
php md5() 関数を使用する、その他ユーザー情報の暗号化に努めて、セキュリティ リスクをさらに軽減することができます。
|