我正在尝试在 PHP 中创建一种文件生成器。基本上,它获取一个默认文件,读取数据,解密数据(以 AES 加密),使用用户密码加密数据并将所有这些字节粘贴到具有客户端名称的新文件中。
这很容易,但我遇到了一些问题。这是我当前的代码:
// Load the original raw file
$data = file_get_contents('default.bin');
if (!$data) exit();
// Decrypt the raw data with the default key
$data = AESDecrypt($data, 'default_16_b_key');
// Encrypt the raw data with the user key
$data = AESEncrypt(pad($data, 16), $user_key);
$fileName = sprintf('client_%s.bin', $client_name);
file_put_contents($fileName, $data);
以下是我正在使用的功能:
function AESEncrypt($data, $key)
{
return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB);
}
function AESDecrypt($data, $key)
{
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB);
}
function pad($data, $blocksize)
{
$pad = $blocksize - (strlen($data) % $blocksize);
return $data . str_repeat(chr($pad), $pad);
}
AES 函数运行良好,因为我可以解密和加密一个简单的字符串。pad 功能似乎完成了它的工作。
问题是当我尝试执行生成的文件(这是重命名后的 jar 文件)时,我收到此消息“意外文件结束”,除了一个空白文件(0 字节)之外,我的 jar 文件中没有任何内容。
你能帮我解决这个问题吗?