簡體   English   中英

mcrypt警告

[英]mcrypt warnings

我不斷收到這些警告:

警告:mcrypt_generic_init():mcrypt_generic_init():1不是C:\\ Users \\ dever \\ Desktop \\ web代碼\\ HeloWorld \\ HeloWorld \\ Crypt.php在第123行第9列中的有效MCrypt資源。

警告:mdecrypt_generic():mdecrypt_generic():1不是C:\\ Users \\ dever \\ Desktop \\ web代碼\\ HeloWorld \\ HeloWorld \\ Crypt.php在第124行第9列中的有效MCrypt資源。

警告:mcrypt_generic_deinit():mcrypt_generic_deinit():1不是C:\\ Users \\ dever \\ Desktop \\ web代碼\\ HeloWorld \\ HeloWorld \\ Crypt.php在第125行第9列中的有效MCrypt資源。

警告:mcrypt_generic_init():mcrypt_generic_init():1不是第100行第9列的C:\\ Users \\ dever \\ Desktop \\ web代碼\\ HeloWorld \\ HeloWorld \\ Crypt.php中的有效MCrypt資源。

警告:mcrypt_generic():mcrypt_generic():1在第105行第9列的C:\\ Users \\ dever \\ Desktop \\ web代碼\\ HeloWorld \\ HeloWorld \\ Crypt.php中不是有效的MCrypt資源。

警告:mcrypt_generic_deinit():mcrypt_generic_deinit():1不是C:\\ Users \\ dever \\ Desktop \\ web代碼\\ HeloWorld \\ HeloWorld \\ Crypt.php在第107行第9列中的有效MCrypt資源。

由於這是一個警告,並且字符串“似乎”已加密,因此到目前為止,我都忽略了它。 但是,似乎我正在使用的遠程服務器不喜歡加密的字符串,並且向我返回錯誤說明了很多。

這是生成這些警告的代碼:

    mcrypt_generic_init($this->_td, $this->_key, $iv);
    $data = mdecrypt_generic($this->_td, $data);
    mcrypt_generic_deinit($this->_td);

$iv = mcrypt_create_iv(self::AES_BLOCK_SIZE, $random_source);
    $s = mcrypt_generic_init($this->_td, $this->_key, $iv);
    if( ($s < 0) || ($s === false))
        die( "Really an error" );
    $data = mcrypt_generic($this->_td, $data);
    $data = $iv.$data;
    mcrypt_generic_deinit($this->_td);

我已經研究過,但無法發現這些警告的含義,如果它們正在影響加密/解密,或者究竟是什么問題呢? 我很確定它不是代碼(因為我在其他服務器上工作)。

這是我執行的測試,它重現了您在var_dump看到的值:

$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');
var_dump($td);
mcrypt_module_close($td);
var_dump($td);

它打印:

resource(4) of type (mcrypt)
resource(4) of type (Unknown)

由於您看到的是相同的行為(資源ID保持不變,但失去了其mcrypt關聯),因此似乎在初始化$this->_td mcrypt_generic_init $this->_td與實際調用mcrypt_generic_init之間的某個時刻關閉了模塊資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM