Как зашифровать / расшифровать текст из файла с помощью php? - PullRequest
1 голос
/ 01 октября 2009

Как зашифровать / расшифровать текст из файла с помощью php?

Ответы [ 3 ]

8 голосов
/ 01 октября 2009

если у вас есть модуль mcrypt, скомпилированный с вашим PHP:

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. (фрагменты кода из того же источника)

0 голосов
/ 01 октября 2009

Вот базовое шифрование 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);
0 голосов
/ 01 октября 2009

Вы собираетесь использовать библиотеку mcrypt php. Он поддерживает широкий спектр схем шифрования. Вам, вероятно, нужно сделать перекомпиляцию. Если у вас еще нет этого расширения, вы можете установить pgp и запустить его в исполняемый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...