PHP mcrypt可逆加密算法分析

2015-01-24信息快讯网
数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量交易和传输的大量数据。对于不需要还原为原始数据的信息我们可以使用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 
$td = mcrypt_module_open(MCRYPT_DES,'','ecb',''); //使用MCRYPT_DES算法,ecb模式 
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 
$ks = mcrypt_enc_get_key_size($td); 
$key = "ery secret key";//密钥 
$key = substr(md5($key), 0, $ks); 
mcrypt_generic_init($td, $key, $iv); //初始处理 
//加密 
$encrypted = mcrypt_generic($td, 'This is very important data'); 
//结束处理 
mcrypt_generic_deinit($td); 
//初始解密处理 
mcrypt_generic_init($td, $key, $iv); 
//解密 
$decrypted = mdecrypt_generic($td, $encrypted); 
//结束 
mcrypt_generic_deinit($td); 
mcrypt_module_close($td); 
//解密后,可能会有后续的\0,需去掉 
echo trim($decrypted) . "\n"; 
?> 
PHP/Javascript/CSS/jQuery常用知识大全详细整理第1/2页
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
php和javascript之间变量的传递实现代码
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
PHP可逆加密/解密函数分享
如何获知PHP程序占用多少内存(memory_get_usage)
PHP管理内存函数 memory_get_usage()使用介绍
PHP中使用crypt()实现用户身份验证的代码
php中3des加密代码(完全与.net中的兼容)
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
通过PHP的内置函数,通过DES算法对数据加密和解密
PHP的加密方式及原理
php实现rc4加密算法代码
php 的加密函数 md5,crypt,base64_encode 等使用介绍
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
关于php连接mssql:pdo odbc sql server
PHP中date()日期函数有关参数整理
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
php设计模式 Factory(工厂模式)
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
jQuery 源码分析笔记
fleaphp crud操作之find函数的使用方法
fleaphp crud操作之findByField函数的使用方法
PHP中输出转义JavaScript代码的实现代码
PHP+JS+rsa数据加密传输实现代码
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
微盾PHP脚本加密专家php解密算法
使用bcompiler对PHP文件进行加密的代码
ionCube 一款类似zend的PHP加密/解密工具
UCenter中的一个可逆加密函数authcode函数代码
©2014-2024 dbsqp.com