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=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
}
<?php
/**
*
* @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
给方法:开始--->运行,输入cmd,接着输入以下内容加密:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web项目路径"
解密:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "你的Web项目路径"
.NET为版本的路径自行修改,其中connectionStrings连接字符串的名称。
需要注意的是,加密过程中使用了一个基于本机的密钥,这意味着解密过程必须在同一台计算机上完成。如果是将加密后的Web.config文件移动到其它计算机上,那么Web.config文件中的连接字符串将不能够正常解密。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)