Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Reihe von Beispielcodes für reversible PHP-Verschlüsselungs- und -Entschlüsselungsalgorithmen

Eine Reihe von Beispielcodes für reversible PHP-Verschlüsselungs- und -Entschlüsselungsalgorithmen

高洛峰
高洛峰Original
2016-12-21 09:46:431000Durchsuche

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 = &#39;PHP加密解密算法&#39;;  // 被加密信息
$key = &#39;123&#39;;     // 密钥
$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!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn