Für die meisten Passwortverschlüsselung können wir MD5, SHA1 und andere Methoden verwenden. Datenlecks können effektiv verhindert werden, diese Methoden gelten jedoch nur für Datenverschlüsselung, die nicht wiederhergestellt werden muss.
Für Informationen, die wiederhergestellt werden müssen, muss ein reversibler Verschlüsselungs- und Entschlüsselungsalgorithmus verwendet werden.
Der folgende Satz von PHP-Funktionen ist die Methode zur Implementierung dieser Ver- und Entschlüsselung:
Der Verschlüsselungsalgorithmus ist wie folgt:
function encrypt($data, $key) { $key = md5($key); $x = 0; $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char .= $key{$x}; $x++; } for ($i = 0; $i < $len; $i++) { $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256); } return base64_encode($str); }
Der Entschlüsselungsalgorithmus ist wie folgt :
function decrypt($data, $key) { $key = md5($key); $x = 0; $data = base64_decode($data); $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char .= substr($key, $x, 1); $x++; } for ($i = 0; $i < $len; $i++) { if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) { $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1))); } else { $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1))); } } return $str; }
Die oben genannten Verschlüsselungs- und Entschlüsselungsprozesse erfordern alle die Verwendung eines Verschlüsselungsschlüssels (d. h. Parameter $key).
$data = 'PHP加密解密算法'; // 被加密信息 $key = '123'; // 密钥 $encrypt = encrypt($data, $key); $decrypt = decrypt($encrypt, $key); echo $encrypt, "\n", $decrypt;
Oben wird ein Ergebnis ähnlich dem folgenden ausgegeben:
gniCSOzZG+HnS9zcFea7SefNGhXF
PHP-Verschlüsselungs- und Entschlüsselungsalgorithmus
Wie aus dem Obigen ersichtlich ist Im Ergebnis handelt es sich um eine Reihe reversibler Verschlüsselungs- und Entschlüsselungsalgorithmen, mit denen einige Daten verschlüsselt werden können, die wiederhergestellt werden müssen.
Weitere Artikel zu einer Reihe von Beispielcodes für reversible PHP-Verschlüsselungs- und -Entschlüsselungsalgorithmen finden Sie auf der chinesischen PHP-Website!