php 加密解密算法-mcrypt
2017-12-26 11:10
639 查看
<?php
class enstr {
public function enstrhex($str,$key) {
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/* 初始化加密程序*/
mcrypt_generic_init($td, $keystr, $iv);
/* 加密, $encrypted 保存的是已经加密后的数据*/
$encrypted = mcrypt_generic($td, $str);
/* 检测解密句柄,并关闭模块*/
mcrypt_module_close($td);
/* 转化为16进制*/
$hexdata = bin2hex($encrypted);
//返回
return $hexdata;
}
public function destrhex($str,$key) {
/*开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/*
初始化加密模块,用以解密
*/
mcrypt_generic_init($td, $keystr, $iv);
/* 解密*/
$encrypted = pack( "H*", $str);
$decrypted = mdecrypt_generic($td, $encrypted);
/* 检测解密句柄,并关闭模块*/
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* 返回原始字符串*/
return $decrypted;
}
}
$enstr = new enstr();
$str = 'test';
$entemp = $enstr->enstrhex($str,'key');
$detemp = $enstr->destrhex($entemp,'key');
echo '字符:'.$str.'<br>加密:'.$entemp.'<br>解密:'.$detemp;
?>
class enstr {
public function enstrhex($str,$key) {
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/* 初始化加密程序*/
mcrypt_generic_init($td, $keystr, $iv);
/* 加密, $encrypted 保存的是已经加密后的数据*/
$encrypted = mcrypt_generic($td, $str);
/* 检测解密句柄,并关闭模块*/
mcrypt_module_close($td);
/* 转化为16进制*/
$hexdata = bin2hex($encrypted);
//返回
return $hexdata;
}
public function destrhex($str,$key) {
/*开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/*
初始化加密模块,用以解密
*/
mcrypt_generic_init($td, $keystr, $iv);
/* 解密*/
$encrypted = pack( "H*", $str);
$decrypted = mdecrypt_generic($td, $encrypted);
/* 检测解密句柄,并关闭模块*/
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* 返回原始字符串*/
return $decrypted;
}
}
$enstr = new enstr();
$str = 'test';
$entemp = $enstr->enstrhex($str,'key');
$detemp = $enstr->destrhex($entemp,'key');
echo '字符:'.$str.'<br>加密:'.$entemp.'<br>解密:'.$detemp;
?>
相关文章推荐
- Mcrypt拓展的带密钥PHP加密和解密算法
- PHP mcrypt启用、加密以及解密过程详解
- Php Mcrypt 加密解密
- 一组PHP可逆加密解密算法实例代码
- 一组PHP可逆加密解密算法
- PHP加密解密内部算法
- php后端加密js前端解密mcrypt_module替换为openssl_encrypt
- PHP加密解密内部算法
- PHP mcrypt启用、加密以及解密过程
- 学习php需要了解的点2 - PHP 一组加密解密算法
- php结合md5的加密解密算法实例
- php与java通用AES加密解密算法
- php des 加密解密函数 mcrypt
- 加密过的PHP文件的解密算法(收藏)
- php基于mcrypt的加密解密实例
- php结合md5的加密解密算法实例
- PHP用私人密钥key对内容加解密算法,并且每次加密后的值不同
- PHP使用mcrypt进行AES加密后的数据NodeJS等无法解密的问题修复方案
- PHP 加密解密内部算法