Cet article présente principalement les méthodes simples de chiffrement et de décryptage symétriques implémentées en PHP. Il résume les méthodes courantes d'opération de chiffrement et de décryptage symétrique PHP sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
Les exemples. dans cet article, décrivez la méthode de chiffrement et de déchiffrement symétrique simple implémentée en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Méthode 1 : la propre méthode de cryptage de YII
/** * 加密 * @var string [要加密的值] */ $secretKey = "wwj"; $data = $res['u_id']; $encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey);
/** * 解密 * @var [type] [加密前的值] */ $aid = $req->get('uid'); $secretKey = "wwj"; $uid = Yii::$app->getSecurity()->decryptByPassword($aid,$secretKey);
Méthode 2 :
/** * 安全URL编码 * @param type $data * @return type */ function encode($data) { return str_replace(array('+', '/', '='), array('-', '_', ''), base64_encode(serialize($data))); } /** * 安全URL解码 * @param type $string * @return type */ function decode($string) { $data = str_replace(array('-', '_'), array('+', '/'), $string); $mod4 = strlen($data) % 4; ($mod4) && $data .= substr('====', $mod4); return unserialize(base64_decode($data)); }
Méthode trois :
/** * 加密 * @param [type] $code [description] * @return [type] [description] */ public static function encrypt($code) { return urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5("key"), $code, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); } /** * 解密 * @param [type] $code [description] * @return [type] [description] */ public static function decrypt($code) { return urldecode(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5("key"), base64_decode($code), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))); }
Méthode 4 :
/** * 简单对称加密 * @param string $string [需要加密的字符串] * @param string $skey [加密的key] * @return [type] [加密后] */ function encode($string = '', $skey = 'cxphp') { $strArr = str_split(base64_encode($string)); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key < $strCount && $strArr[$key].=$value; return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr)); }
/** * 简单对称解密 * @param string $string [加密后的值] * @param string $skey [加密的key] * @return [type] [加密前的字符串] */ function decode($string = '', $skey = 'cxphp') { $strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key <= $strCount && isset($strArr[$key]) && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0]; return base64_decode(join('', $strArr)); }
Recommandations associées :
cryptage symétrique PHP code de classe d'algorithme (DES / AES)
exemple d'algorithme de chiffrement symétrique php_tutoriel PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!