后续解密失败,文件大小为0

时间:2018-11-10 12:10:43

标签: php encryption

以下脚本可以正常工作。对该zip进行加密,创建txt文件并立即将其成功解密,并成功创建新的zip。

但是,如果我仅随后运行解密部分,它将无法解密txt文件。它返回一个空的$original_plaintext变量,最终的zip大小为0。第二次运行时,$ key和$ iv不变。安全性不是问题-我只需要一个加扰的文本文件,然后以后就可以对其解密。

$key = "sometext";  
$iv = "someothertext";  
$cipher = "aes-128-gcm";
$tag = NULL;

$fileRoot = "sql_2018_11_10";

if (in_array($cipher, openssl_get_cipher_methods())) {
    // Encrypt
    $plaintext = file_get_contents("tmp/$fileRoot.zip");
    $ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
    file_put_contents("tmp/enc_$fileRoot.txt", $ciphertext);

    // Decrypt
    $ciphertext = file_get_contents("tmp/enc_$fileRoot.txt");   
    $original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
    file_put_contents("tmp/uenc_$fileRoot.zip", $original_plaintext);
}

0 个答案:

没有答案