请教 php如何对字符串加密和解密,求一个相关的实例!

2025-04-10 09:18:09
推荐回答(1个)
回答1:

字符串加密解密算法

php5.5中有更为可靠和方便的加密方式。喜欢钻研的朋友可以了解一下:

password_hash()

基于mcrypt扩展,按位异或总结的两个字符串加密解密算法


/**

* @info 字符串加密解密算法一,利用mcrypt扩展

* @param string $string 待处理字符串

* $action ENCODE,加密 | DECODE,解密

* @return string $returnstr

*/

functionmcrypt_handle_string($string,$action= 'ENCODE')

{

!is_array($string) orexit;

$action== 'DECODE' &&$string=base64_decode($string);

$key= "123456";//key可自定义或在配置文件中获取

$mcryptAlgorithm= MCRYPT_DES;//选择一种加密算法

$mcryptMode= MCRYPT_MODE_ECB;//选择一种加密模式

$mcryptIv= mcrypt_create_iv(mcrypt_get_iv_size($mcryptAlgorithm,$mcryptMode),MCRYPT_RAND);//创建初始化向量$returnstr=base64_encode(mcrypt_encrypt($mcryptAlgorithm,$key,$string,$mcryptMode,$mcryptIv));

if('DECODE' ==$action)

{$returnstr=mcrypt_decrypt($mcryptAlgorithm,$key,$string,$mcryptMode,$mcryptIv);

}return$returnstr;

}


/**

*

* @info 字符串加密解密算法二 利用按位异或

* @param string $string 待处理字符串

* @param $action ENCODE 加密 | DECODE 解密

* @return string*/

functionStrCode($string,$action= 'ENCODE')

{$action!= 'ENCODE' &&$string=base64_decode($string);

$code= '';$key=substr(md5($GLOBALS['pwServer']['HTTP_USER_AGENT'] .$GLOBALS['db_hash']),

8,18);$keyLen=strlen($key);

$strLen=strlen($string);

for($i= 0;$i<$strLen;$i++)

{$k=$i%$keyLen;$code.=$string[$i] ^$key[$k];

}

return($action!= 'DECODE' ?base64_encode($code) :$code);

}

来源jingyan.baidu.com/m/article/e4d08ffdd1ca6b0fd2f60d13.html