2016-04-01 62 views
-1

我想加密文本文件。下面是我的代碼。但我在運行時遇到函數錯誤。使用Mcrypt DES在php中加密文件時出錯

<?php 

$key = '123456'; 
$plain_text = pkcs5_pad(file_get_contents('yourFile.txt')); 

/* Open module, and create IV */ 
$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, ''); 
$key = substr($key, 0, mcrypt_enc_get_key_size($td)); 
$iv_size = mcrypt_enc_get_iv_size($td); 
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM); 

/* Initialize encryption handle */ 
mcrypt_generic_init($td, $key, $iv); 

/* Encrypt data */ 
$encrypted = mcrypt_generic($td, $plain_text); 
mcrypt_generic_deinit($td); 
file_put_contents('yourFile.txt.enc', $encrypted); 
?> 

我越來越低的錯誤..請幫我解決這個問題。

Fatal error: Call to undefined function pkcs5_pad() in C:\xampp\htdocs\data\encrypt.php on line 4 
+0

'pkcs5_pad'不是標準功能。你包括它嗎? –

+0

我沒有包含任何功能。我只是在php.ini文件中取消註釋extension = php_mcrypt.dll並重新啓動xampp。你可以請讓我知道解決方案.. – bKashOST

+0

那麼,你在哪裏得到'pkcs5_pad'存在於PHP/mcrypt的想法?也許你應該重新訪問你從中複製的代碼,幷包含缺少的函數。無論如何,你現在不應該使用mcrypt。這是放棄的。你應該使用類似php-defuse的東西。 –

回答

0

你需要確保你已經安裝了mcrypt的模塊,配置並啓用,然後才能使用pkcs5_pad功能。根據您的平臺安裝和配置會有所不同,因此請參閱the documentation以獲得幫助。