我在PHP中开发了一个使用加密和解密的应用程序。 我使用过mcrypt_encrypt和mcrypt_decrypt函数。
但我想以某种方式隐藏我的加密密钥。这样其他网络用户就看不到了。 我怎么能这样做?
我尝试将我的密钥保存在单个文件中,而不是生成该文件的exe。但是当我在我的php页面上执行它而不是返回空白时。
我试过了 - > exec('key.exe',$key); print_r($key);
任何人都可以帮助我,我怎么能隐藏我的加密密钥? 还有其他办法吗?
,
Mausami
答案 0 :(得分:0)
您可以在网络目录之外隐藏加密密钥,然后使用
$File = "/Path/To/File.ext";
$EncryptKey = file_get_contents($File);
print_r($EncryptKey);
将其隐藏在您的网络目录之外,以便只有脚本才能访问它;或者具有完全系统访问权限的管理员。
答案 1 :(得分:0)
如果您确实需要使用可执行文件“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');
Pat用于Windows,因为key.exe听起来像你有一台Windows机器,如果不是 / tmp / ,而不是 c:
答案 2 :(得分:0)
我使用exec()
命令。
我们无法使用file_get_contents('key.exe')
,因为它无法提供原始内容。
我使用此代码获得了解决方案
$str = exec('path\key.exe');
echo $str;
感谢Alex Lunix,Marc B,CodeslnChaos,Daryl Gill,jogesh_p和prdatur的帮助。