执行时:
func Enemy1KillCounter() {
guard let gameScene = self.scene as? GameScene
else { fatalError("Current node is not inside a GameScene") }
gameScene.Enemy1DieG()
}
OpenSSL完美地解密了我的文件。但是,当我执行:
openssl_decrypt(
base64_decode(file_get_contents('/path/to/file')),
'aes-256-cbc',
$key,
OPENSSL_RAW_DATA,
$iv
);
未创建目标文件。
有谁知道什么可能是错的?我的客户希望能够上传大到2GB的大文件,并将那么多数据加载到PHP变量中似乎是一个非常糟糕的主意。
编辑:
使用bin2hex,我得到了一个看似理智的命令:
shell_exec('openssl enc -aes-256-cbc -base64 -d -A -p -K ' . $key . ' -iv ' . $iv . ' -in /path/to/file -out /path/to/dest');
但是我得到了包:
openssl enc -aes-256-cbc -base64 -d -A -p -K 64343438343165333635663434663262633036636235656462383238356239303763373365353633 -iv abdd099c7bac8b514089d8c901c8395c -in /usr/www/vault/new/d71fd708181573c5f92c8f500ddcb399/787 -out /tmp/decrypted/57574484b684c
答案 0 :(得分:2)
也许您需要对参数进行编码,以便shell可以实际执行命令:
shell_exec('openssl enc -aes-256-cbc -base64 -d -A -p -K '
. escapeshellarg($key) . ' -iv ' . escapeshellarg($iv)
. ' -in /path/to/file -out /path/to/dest');
如果您的文件名包含例如文件名,则情况也是如此。空格。
编辑:实际上Artjom B.是对的:openssl说: -K / -iv key / iv in hex是下一个参数。所以你需要对其进行十六进制编码:
shell_exec('openssl enc -aes-256-cbc -base64 -d -A -p -K '
. bin2hex($key) . ' -iv ' . bin2hex($iv)
. ' -in /path/to/file -out /path/to/dest');