Maison  >  Article  >  développement back-end  >  Analyse de l'algorithme de chiffrement réversible PHP mcrypt()

Analyse de l'algorithme de chiffrement réversible PHP mcrypt()

怪我咯
怪我咯original
2017-07-23 10:55:181623parcourir

Le cryptage des données est devenu de plus en plus important dans nos vies, surtout compte tenu du grand nombre de transactions effectuées et de la grande quantité de données transmises sur Internet. Pour les informations qui n'ont pas besoin d'être restaurées dans les données d'origine, nous pouvons utiliser des algorithmes de cryptage irréversibles tels que MD5 et SHA1 pour crypter les données. Cependant, les informations importantes telles que les informations de transaction qui doivent être restaurées dans les données d'origine doivent être cryptées. en utilisant un algorithme de cryptage restaurable. Bien entendu, vous pouvez écrire vous-même un algorithme de chiffrement réversible pour effectuer des calculs de chiffrement et de déchiffrement. Dans cet article, nous présentons l'utilisation du module mcrypt pour les opérations de chiffrement et de déchiffrement.

L'avantage de Mcrypt n'est pas seulement qu'il fournit de nombreux algorithmes de chiffrement et qu'il est publié avec le package PHP sous Windows, mais aussi qu'il peut chiffrer/déchiffrer les données. fournit également 35 fonctions de traitement des données, y compris l'algorithme DES.

/** 
+----------------------------------------------------- 
* 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 = 'encode'){ 
$key = md5('zxing');//用MD5哈希生成一个密钥,注意加密和解密的密钥必须统一 
if ($mode == 'decode'){ 
$date = base64_decode($date); 
} 
if (function_exists('mcrypt_create_iv')){ 
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
} 
if (isset($iv) && $mode == 'encode'){ 
$passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv); 
}elseif (isset($iv) && $mode == 'decode'){ 
$passcrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv); 
} 
if ($mode == 'encode'){ 
$passcrypt = base64_encode($passcrypt); 
} 
return $passcrypt; 
}


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn