Как сделать файл зашифрованным и расшифрованным с помощью TripleDes в PHP

Я не смог найти достаточно ресурсов по этой теме, и мне нужно узнать, как я могу зашифровать и расшифровать файл с помощью TripleDes в PHP (при загрузке он должен шифровать файл, а при загрузке файл должен расшифровываться).

Также я нашел несколько примеров, но не смог их реализовать http://php.net/manual/en/mcrypt.examples.php http://stackoverflow.com/questions/10548386/issue-with-encrypt-and-decrypt-a-word-docx-file-in-php

Спасибо за ваши интересы.


person İlker Korkut    schedule 11.05.2012    source источник


Ответы (1)


Вы можете использовать этот код для шифрования строки:

$buffer = $file; 
// get the amount of bytes to pad
$extra = 8 - (strlen($buffer) % 8);
// add the zero padding
if($extra > 0) {
    for($i = 0; $i < $extra; $i++) {
        $buffer .= "\0";
    }
}
// very simple ASCII key and IV
$key = "passwordDR0wSS@P6660juht";
$iv = "password";
// hex encode the return value
$encrypted_file = mcrypt_cbc(MCRYPT_3DES, $key, $buffer, MCRYPT_ENCRYPT, $iv);

И это, чтобы расшифровать это:

$decrypted_file = mcrypt_cbc(MCRYPT_3DES, $key, $encrypted_file, MCRYPT_DECRYPT, $iv);
person Jeroen    schedule 11.05.2012
comment
Вы можете просто сделать $buffer = $file . str_repeat("\0", 8 - (strlen($file) % 8));. Кроме того, разве вы не должны удалять байты NUL после расшифровки? - person Alix Axel; 11.05.2012
comment
спасибо, сейчас попробую. но эта переменная $output равна чему? это зашифрованный файл для скачивания? - person İlker Korkut; 11.05.2012
comment
Плохо, это должен был быть $encrypted_file - person Jeroen; 12.05.2012