簡體   English   中英

如何使用php從文件加密/解密文本?

[英]How to encrypt/decrypt text from file with php?

如何使用php從文件加密/解密文本?

如果您使用PHP編譯了mcrypt模塊:

function encryptData($value){
   $key = "top secret key";
   $text = $value;
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
   return $crypttext;
}

function decryptData($value){
   $key = "top secret key";
   $crypttext = $value;
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
   return trim($decrypttext);
} 

$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));


$EncryptedData=encryptData($content);
$DecryptedData=decryptData($EncryptedData);

有關更多信息,請參考http://us3.php.net/manual/en/function.mcrypt-encrypt.php (來自同一來源的代碼段)

您將要使用mcrypt php庫。 它支持多種加密方案。 您可能需要重新編譯。 如果您還沒有此擴展,則可以安裝pgp ,然后將其外殼運行到可執行文件中。

這是基本的DES加密

<?php

$key = 'yourSecretKey';
$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);

暫無
暫無

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

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