发布网友 发布时间:2022-04-06 04:17
共2个回答
热心网友 时间:2022-04-06 05:46
字符串加密解密算法
php5.5中有更为可靠和方便的加密方式。喜欢钻研的朋友可以了解一下:
password_hash()
基于mcrypt扩展,按位异或总结的两个字符串加密解密算法
<?php
/**
* @info 字符串加密解密算法一,利用mcrypt扩展
* @param string $string 待处理字符串
* $action ENCODE,加密 | DECODE,解密
* @return string $returnstr
*/
functionmcrypt_handle_string($string,$action= 'ENCODE')
{
!is_array($string) orexit;
$action== 'DECODE' &&$string=base_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=base_encode(mcrypt_encrypt($mcryptAlgorithm,$key,$string,$mcryptMode,$mcryptIv));
if('DECODE' ==$action)
{$returnstr=mcrypt_decrypt($mcryptAlgorithm,$key,$string,$mcryptMode,$mcryptIv);
}return$returnstr;
}
<?php
/**
*
* @info 字符串加密解密算法二 利用按位异或
* @param string $string 待处理字符串
* @param $action ENCODE 加密 | DECODE 解密
* @return string*/
functionStrCode($string,$action= 'ENCODE')
{$action!= 'ENCODE' &&$string=base_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' ?base_encode($code) :$code);
}
来源jingyan.baidu.com/m/article/e4d08ffdd1ca6b0fd2f60d13.html追问谢谢您的解答!
热心网友 时间:2022-04-06 07:04
base_decode() 解密
base_encode()加密
追问大神,谢谢您的加密解密方法。
这个方法确实很方便使用。
但是如果我想要别人不容易看出我使用的加密方法是base_encode的,
请问我还需要什么样操作才能让数据安全一些呢?