php 加密解密算法-mcrypt

<?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;

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP 中,您可以使用以下函数对字符串进行压缩和解压缩: 1. gzcompress() 和 gzuncompress() 函数:使用 gzip 压缩算法对字符串进行压缩和解压缩。 ```php $compressed = gzcompress($string); // 对 $string 进行压缩 $original = gzuncompress($compressed); // 解压缩 $compressed ``` 2. gzencode() 和 gzdecode() 函数:类似于 gzcompress() 和 gzuncompress() 函数,但使用的是 zlib 压缩算法。 ```php $encoded = gzencode($string); // 对 $string 进行压缩 $original = gzdecode($encoded); // 解压缩 $encoded ``` 在 PHP 中,您还可以使用以下函数对字符串进行加密和解密: 1. openssl_encrypt() 和 openssl_decrypt() 函数:使用 OpenSSL 库中的加密算法对字符串进行加密和解密。 ```php $encrypted = openssl_encrypt($string, "AES-256-CBC", $key, 0, $iv); // 使用 AES-256-CBC 加密算法对 $string 进行加密 $decrypted = openssl_decrypt($encrypted, "AES-256-CBC", $key, 0, $iv); // 解密 $encrypted ``` 其中,$key 和 $iv 是加密过程中使用的密钥和初始化向量。 2. mcrypt_encrypt() 和 mcrypt_decrypt() 函数:类似于 openssl_encrypt() 和 openssl_decrypt() 函数,但使用的是 mcrypt 库中的加密算法。 ```php $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_CBC, $iv); // 使用 Rijndael-128 加密算法对 $string 进行加密 $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC, $iv); // 解密 $encrypted ``` 其中,$key 和 $iv 是加密过程中使用的密钥和初始化向量。请注意,mcrypt 库已被弃用,不建议使用。建议使用 OpenSSL 库中的加密算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值