Heim >Backend-Entwicklung >PHP-Tutorial >Benutzerdefinierte PHP-Verschlüsselungsmethode mit Verschlüsselungsfaktor

Benutzerdefinierte PHP-Verschlüsselungsmethode mit Verschlüsselungsfaktor

高洛峰
高洛峰Original
2016-10-21 10:57:161718Durchsuche

Es gibt jetzt viele PHP-Verschlüsselungsmethoden. Im Allgemeinen handelt es sich bei den einfachen MD5-Verschlüsselungsmethoden um eine Dekompilierung, sodass es für uns jetzt sicherer ist, mit benutzerdefinierten Methoden zu verschlüsseln.

Jetzt sammle und fasse ich einige PHP-Verschlüsselungsmethoden zusammen und teile sie als Referenz mit Ihnen.

Methode 1:

/**
* 对用户的密码进行加密
* @param $password
* @param $encrypt //传入加密串,在修改密码时做认证
* @return array/password
*/
function password($password, $encrypt='') {
    $pwd = array();
    $pwd['encrypt'] = $encrypt ? $encrypt : rand(1000,9999); 
    $pwd['password'] = md5(md5(trim($password)).$pwd['encrypt']);
    return $encrypt ? $pwd['password'] : $pwd;
}

Methodenbeschreibung: Wenn wir nur das Passwort übergeben, gibt die Methode einen Verschlüsselungsfaktor und ein neu generiertes Verschlüsselungspasswort zurück Beides wird zufällig generiert und ist jedes Mal anders.


Methode 2:

/* 
* rc4加密算法 
* $pwd 密钥 
* $data 要加密的数据 
*/ 
 
//$pwd密钥 $data需加密字符串 
function rc4 ($pwd, $data){ 
    $key[] =""; 
    $box[] =""; 
    $pwd_length = strlen($pwd); 
    $data_length = strlen($data); 
    for ($i = 0; $i < 256; $i++){ 
        $key[$i] = ord($pwd[$i % $pwd_length]); 
        $box[$i] = $i; 
    } 
    for ($j = $i = 0; $i < 256; $i++) { 
        $j = ($j + $box[$i] + $key[$i]) % 256; 
        $tmp = $box[$i]; 
        $box[$i] = $box[$j]; 
        $box[$j] = $tmp; 
    } 
    for ($a = $j = $i = 0; $i < $data_length; $i++) { 
        $a = ($a + 1) % 256; 
        $j = ($j + $box[$a]) % 256; 
        $tmp = $box[$a]; 
        $box[$a] = $box[$j]; 
        $box[$j] = $tmp; 
        $k = $box[(($box[$a] + $box[$j]) % 256)]; 
        $cipher .= chr(ord($data[$i]) ^ $k); 
    } 
    return $cipher; 
}

Methode 3:

/** 
+----------------------------------------------------- 
* Mcrypt 加密/解密 
* @param String $date 要加密和解密的数据 
* @param String $mode encode 默认为加密/decode 为解密 
* @return String 
* @author zxing@97md.net Mon Sep 14 22:59:28 CST 2009 
+----------------------------------------------------- 
* @example 
*/ 
function ZxingCrypt($date,$mode = &#39;encode&#39;){ 
    $key = md5(&#39;zxing&#39;);//用MD5哈希生成一个密钥,注意加密和解密的密钥必须统一 
    if ($mode == &#39;decode&#39;){ 
        $date = base64_decode($date); 
    } 
    if (function_exists(&#39;mcrypt_create_iv&#39;)){ 
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    } 
    if (isset($iv) && $mode == &#39;encode&#39;){ 
        $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv); 
    }elseif (isset($iv) && $mode == &#39;decode&#39;){ 
        $passcrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv); 
    } 
    if ($mode == &#39;encode&#39;){ 
        $passcrypt = base64_encode($passcrypt); 
    } 
    return $passcrypt; 
}


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