0

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

但我想以某种方式隐藏我的加密密钥。以免其他网络用户看到。我怎样才能做到这一点 ?

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

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

谁能帮我,我怎样才能隐藏我的加密密钥?还有其他方法吗?

,

毛萨米

4

3 回答 3

0

您可以将加密密钥隐藏在 Web 目录之外,并使用

$File = "/Path/To/File.ext";
$EncryptKey = file_get_contents($File);
print_r($EncryptKey);

将其隐藏在您的 Web 目录之外,以便只有脚本可以访问它;或具有完全系统访问权限的管理员。

于 2013-01-11T04:09:24.530 回答
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');

路径适用于 windows,因为 key.exe 听起来像你有一台 windows 机器,如果不使用/tmp/而不是c:

于 2013-01-11T10:07:09.070 回答
0

我让它与exec()命令一起工作。

我们不能使用file_get_contents('key.exe'),因为它不能给出原始内容。

我得到了这段代码的解决方案

$str = exec('path\key.exe'); 
echo $str; 

感谢 Alex Lunix、Marc B、CodeslnChaos、Daryl Gill、jogesh_p 和 prdatur 的帮助。

于 2013-01-14T04:08:52.540 回答