最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP加密3DES報(bào)錯(cuò) Call to undefined function: mcrypt_module_open() 如何解決

 更新時(shí)間:2016年04月17日 09:00:12   作者:StarkSoft  
這篇文章主要介紹了PHP加密3DES報(bào)錯(cuò) Call to undefined function: mcrypt_module_open() 如何解決的相關(guān)資料,需要的朋友可以參考下

我也是PHP新手,通過(guò)w3cschool了解了一下php基本原理之后就開(kāi)寫(xiě)了。但仍是菜鳥(niǎo)。

先不管3DES加密的方法對(duì)不對(duì),方法都是網(wǎng)上的,在運(yùn)行的時(shí)候報(bào)了個(gè)錯(cuò),把小弟整死了。找來(lái)找去終于自己摸出了方法。

<?php
/**
* 
* PHP版3DES加解密類(lèi)
*
* 可與java的3DES(DESede)加密方式兼容
*
* @Author: Luo Hui (farmer.luo at gmail.com)
*
* @version: V0.1 2008.12.04
*
*/
class Crypt3Des
{ 
public $key = "01234567890123456789012345678912";
public $iv = "23456789"; //like java: private static byte[] myIV = { 50, 51, 52, 53, 54, 55, 56, 57 };
//加密
public function encrypt($input)
{
$input = $this->padding( $input );
$key = base64_decode($this->key);
$td = mcrypt_module_open( MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
//使用MCRYPT_3DES算法,cbc模式
mcrypt_generic_init($td, $key, $this->iv);
//初始處理
$data = mcrypt_generic($td, $input);
//加密
mcrypt_generic_deinit($td);
//結(jié)束
mcrypt_module_close($td);
$data = $this->removeBR(base64_encode($data));
return $data;
}
//解密
public function decrypt($encrypted)
{
$encrypted = base64_decode($encrypted);
$key = base64_decode($this->key);
$td = mcrypt_module_open( MCRYPT_3DES,'',MCRYPT_MODE_CBC,'');
//使用MCRYPT_3DES算法,cbc模式
mcrypt_generic_init($td, $key, $this->iv);
//初始處理
$decrypted = mdecrypt_generic($td, $encrypted);
//解密
mcrypt_generic_deinit($td);
//結(jié)束
mcrypt_module_close($td);
$decrypted = $this->removePadding($decrypted);
return $decrypted;
}
//填充密碼,填充至8的倍數(shù)
public function padding( $str )
{
$len = 8 - strlen( $str ) % 8;
for ( $i = 0; $i < $len; $i++ )
{
$str .= chr( 0 );
}
return $str ;
}
//刪除填充符
public function removePadding( $str )
{
$len = strlen( $str );
$newstr = "";
$str = str_split($str);
for ($i = 0; $i < $len; $i++ )
{
if ($str[$i] != chr( 0 ))
{
$newstr .= $str[$i];
}
}
return $newstr;
}
//刪除回車(chē)和換行
public function removeBR( $str ) 
{
$len = strlen( $str );
$newstr = "";
$str = str_split($str);
for ($i = 0; $i < $len; $i++ )
{
if ($str[$i] != '\n' and $str[$i] != '\r')
{
$newstr .= $str[$i];
}
}
return $newstr;
}
}
//test
$input = "1qaz2ws";
echo "plainText:" . $input."<br/>";
$crypt = new Crypt3Des();
echo "Encode:".$crypt->encrypt($input)."<br/>";
echo "Decode:".$crypt->decrypt($crypt->encrypt($input));
?>

代碼可以不看,就看里面的一句:$td = mcrypt_module_open( MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');報(bào)錯(cuò)的就是他。

我搜尋了一大堆解決方法,正確的方法應(yīng)該是(僅用于windows系統(tǒng)哦):

當(dāng)運(yùn)行php的服務(wù)器端缺少libmcrypt.dll時(shí)使用函數(shù)mcrypt_module_open進(jìn)行解密會(huì)出現(xiàn)此錯(cuò)誤。

在服務(wù)器上做如下設(shè)置可解決。

到網(wǎng)上下載一個(gè)php的mcrypt模塊安裝包,只需要libmcrypt.dll文件即可(一般官網(wǎng)上下載的,php目錄下已經(jīng)有的)

1.將libmcrypt.dll復(fù)制到system32目錄或php安裝目錄下的extensions目錄下

2.將libmcrypt.dll復(fù)制到apache安裝目錄的bin目錄下

3.到windows目錄下找到php.ini文件,打開(kāi)它

4.找到; Directory in which the loadable extensions (modules) reside.
extension_dir = "./" 如:extension_dir = "D:\php5\ext"

這兩行,要使extension_dir指向的目錄下能找到libmcrypt.dll,或系統(tǒng)path下有l(wèi)ibmcrypt.dll

5.找到;Windows Extensions 項(xiàng)下面的;extension=php_mcrypt.dll這一行和;extension=php_iconv.dll(我的沒(méi)有,省略了)這兩行,去掉前面的分號(hào)

ps:剛開(kāi)始看網(wǎng)上的解決方法,有的說(shuō)修改php安裝目錄下的php.ini,但是修改后是沒(méi)用的。一定要修改windows目錄下的php.ini!

相關(guān)文章

  • PHP 范圍解析操作符(::)用法分析【訪問(wèn)靜態(tài)成員和類(lèi)常量】

    PHP 范圍解析操作符(::)用法分析【訪問(wèn)靜態(tài)成員和類(lèi)常量】

    這篇文章主要介紹了PHP 范圍解析操作符(::)用法,結(jié)合具體實(shí)例形式分析了PHP使用范圍解析操作符(::)訪問(wèn)靜態(tài)成員和類(lèi)常量相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • PHP實(shí)現(xiàn) APP端微信支付功能

    PHP實(shí)現(xiàn) APP端微信支付功能

    這篇文章主要介紹了PHP實(shí)現(xiàn) APP端微信支付功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • 獲取URL文件名后綴

    獲取URL文件名后綴

    用php分析URL網(wǎng)址,可以得到文件名、目錄路徑,還有其它數(shù)據(jù),原理就是使用PHP的explode函數(shù)分隔字符串。
    2013-10-10
  • Nginx下ThinkPHP5的配置方法詳解

    Nginx下ThinkPHP5的配置方法詳解

    今天有個(gè)朋友詢(xún)問(wèn)tp5支持pathinfo的nginx配置怎么寫(xiě)的問(wèn)題,所以想著自己總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于在Nginx下ThinkPHP5的配置方法,需要的朋友可以參考借鑒,下面話不多說(shuō),來(lái)一起看看吧。
    2017-08-08
  • Yii2使用小技巧之通過(guò) Composer 添加 FontAwesome 字體資源

    Yii2使用小技巧之通過(guò) Composer 添加 FontAwesome 字體資源

    前天幫同事改個(gè)十年前的網(wǎng)站 bug,頁(yè)面上一堆 include require 不禁讓人抱頭痛哭??吹?V2EX 上的討論說(shuō),寫(xiě) PHP 不用框架等同于耍流氓。Yii Framework 是我使用了 2 年多的 PHP 框架,器大活好,皮實(shí)耐操。 Yii2 還在 Beta 中,不過(guò)不影響拿來(lái)預(yù)研。
    2014-06-06
  • Laravel 解決composer相關(guān)操作提示php相關(guān)異常的問(wèn)題

    Laravel 解決composer相關(guān)操作提示php相關(guān)異常的問(wèn)題

    今天小編就為大家分享一篇Laravel 解決composer相關(guān)操作提示php相關(guān)異常的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • ThinkPHP簡(jiǎn)單使用memcache緩存的方法

    ThinkPHP簡(jiǎn)單使用memcache緩存的方法

    這篇文章主要介紹了ThinkPHP簡(jiǎn)單使用memcache緩存的方法,結(jié)合實(shí)例形式分析了thinkPHP中memcache的簡(jiǎn)單配置與使用技巧,需要的朋友可以參考下
    2016-11-11
  • YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法

    YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法

    這篇文章主要介紹了YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法,需要的朋友可以參考下
    2014-07-07
  • Smarty變量用法詳解

    Smarty變量用法詳解

    這篇文章主要介紹了Smarty變量用法,結(jié)合實(shí)例形式分析了php分配變量與配置文件讀取變量的具體使用方法,需要的朋友可以參考下
    2016-05-05
  • php防止網(wǎng)站被攻擊的應(yīng)急代碼

    php防止網(wǎng)站被攻擊的應(yīng)急代碼

    這篇文章為大家提供了php防止網(wǎng)站被攻擊的應(yīng)急代碼,這是一個(gè)辦法,絕對(duì)不是最好的解決方式,只是想提供給大家,大家一起探討探討。
    2015-10-10

最新評(píng)論

牡丹江市| 青龙| 依兰县| 武邑县| 砚山县| 方城县| 扎囊县| 财经| 玉山县| 呈贡县| 探索| 巴林右旗| 乐都县| 瑞昌市| 全南县| 山东省| 沾化县| 玉林市| 娄底市| 慈利县| 英山县| 龙岩市| 微博| 和静县| 海兴县| 乌鲁木齐市| 高阳县| 云阳县| 禹州市| 石景山区| 浪卡子县| 贞丰县| 博客| 阳朔县| 萝北县| 房山区| 桐乡市| 神农架林区| 雅江县| 鄯善县| 延津县|