我在 PHP 中开发了一个使用加密和解密的应用程序。我使用了 mcrypt_encrypt 和 mcrypt_decrypt 函数。
但我想以某种方式隐藏我的加密密钥。以免其他网络用户看到。我怎样才能做到这一点 ?
我尝试将我的密钥保存在一个单独的文件中,而不是制作该文件的 exe。但是当我在我的 php 页面上执行它时,它会返回空白。
我试过->exec('key.exe',$key); print_r($key);
谁能帮我,我怎样才能隐藏我的加密密钥?还有其他方法吗?
,
毛萨米
我在 PHP 中开发了一个使用加密和解密的应用程序。我使用了 mcrypt_encrypt 和 mcrypt_decrypt 函数。
但我想以某种方式隐藏我的加密密钥。以免其他网络用户看到。我怎样才能做到这一点 ?
我尝试将我的密钥保存在一个单独的文件中,而不是制作该文件的 exe。但是当我在我的 php 页面上执行它时,它会返回空白。
我试过->exec('key.exe',$key); print_r($key);
谁能帮我,我怎样才能隐藏我的加密密钥?还有其他方法吗?
,
毛萨米
您可以将加密密钥隐藏在 Web 目录之外,并使用
$File = "/Path/To/File.ext";
$EncryptKey = file_get_contents($File);
print_r($EncryptKey);
将其隐藏在您的 Web 目录之外,以便只有脚本可以访问它;或具有完全系统访问权限的管理员。
如果你真的需要使用可执行文件“key.exe”,你可以使用
$output = shell_exec('key.exe');
它将 key.exe 的输出存储在 $output 变量中。您还可以尝试使用以下命令创建临时文件:
exec('key.exe > C:/output'); // Store output data from key.exe to c:/output
$output = file_get_contents('C:/output'); // read the output file
unlink('C:/output'); // Delete the output file after reading
但您也可以手动创建加密密钥并将其保存到文件 c:/mykey 中,然后仅使用
file_get_contents('c:/mykey');
路径适用于 windows,因为 key.exe 听起来像你有一台 windows 机器,如果不使用/tmp/而不是c:
我让它与exec()命令一起工作。
我们不能使用file_get_contents('key.exe'),因为它不能给出原始内容。
我得到了这段代码的解决方案
$str = exec('path\key.exe');
echo $str;
感谢 Alex Lunix、Marc B、CodeslnChaos、Daryl Gill、jogesh_p 和 prdatur 的帮助。