我不是PHP编程人员,所以我需要一点关于PHP AES加密的帮助。
我正在编写程序,使用PHP加密图像文件,然后在Java(Android)中进行解密。当我对PNG文件进行加密/解密时,一切正常,但当我尝试对JPG进行相同的操作时,Java解密抛出异常:
我正在编写程序,使用PHP加密图像文件,然后在Java(Android)中进行解密。当我对PNG文件进行加密/解密时,一切正常,但当我尝试对JPG进行相同的操作时,Java解密抛出异常:
WARN/System.err(345): java.io.IOException: data not block size aligned
根据在线搜索,似乎是因为我没有正确进行填充。
我应该如何正确地进行填充?
以下是加密的PHP代码:
<?php
$secret_key = "01234567890abcde";
$iv = "fedcba9876543210";
$infile = "5.png";
$outfile = "5_encrypted.png";
$crypttext = file_get_contents($infile);
$plaintext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $secret_key, $crypttext, MCRYPT_MODE_CBC, $iv);
header('Content-Type: application/octet-stream');
header('Content-Length: ' . strlen($plaintext));
header('Content-Disposition: attachment; filename=' . ($outfile));
echo $plaintext;
//file_put_contents($outfile,$plaintext);
//save the file in the folder of server