資料加密在我們生活中的地位已經越來越重要了,尤其是考慮到在網路上發生的大量交易和傳輸的大量資料。對於不需要還原為原始資料的資訊我們可以使用MD5、sha1等不可逆加密演算法對資料進行加密處理,但對於交易資訊等需要還原為原始資料的重要資訊則必須使用可還原的加密演算法進行加密了。當然你可以自己寫一個可逆加密的演算法來進行加密和解密計算。本文我們介紹的是使用 mcrypt模組進行加密解密操作。
Mcrypt的優點不僅在於其提供的加密演算法較多,在windows下隨PHP包一起發布,還在於它可以對資料進行加/解密處理,此外,它也提供了包括DES演算法在內的35種處理資料用的函數。
/** +----------------------------------------------------- * 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; }
以上是php mcrypt()可逆加密演算法解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!