【发布时间】:2011-10-19 19:59:03
【问题描述】:
我不是 PHP 编码员,所以我需要一些 PHP AES 加密方面的帮助。
我正在编写代码,我在 PHP 中加密图像文件,然后在 Java (Android) 中解密它们。当我加密/解密 PNG 文件时一切正常,但是当我尝试对 JPG 执行相同操作时,Java 解密会引发异常:
WARN/System.err(345): java.io.IOException: data not block size aligned
根据网上搜索,似乎这是因为我没有正确地做padding。
我怎样才能正确地做到这一点?
这里是用于加密的 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
【问题讨论】:
标签: php encryption aes padding