如何在php中隐藏我的加密密钥

时间:2013-01-11 03:59:23

标签: php encryption

我在PHP中开发了一个使用加密和解密的应用程序。 我使用过mcrypt_encrypt和mcrypt_decrypt函数。

但我想以某种方式隐藏我的加密密钥。这样其他网络用户就看不到了。 我怎么能这样做?

我尝试将我的密钥保存在单个文件中,而不是生成该文件的exe。但是当我在我的php页面上执行它而不是返回空白时。

我试过了 - > exec('key.exe',$key); print_r($key);

任何人都可以帮助我,我怎么能隐藏我的加密密钥? 还有其他办法吗?

Mausami

3 个答案:

答案 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的帮助。