一个更好的方法来执行aes_encrypt以及如何为aes_encrypt存储keyString

时间:2013-06-05 11:12:11

标签: php mysql sql

我目前在我的php脚本中进行加密:

select name from table;

while (php loop) {
   echo encrypt();
   echo $name;
}

这是我的加密功能。

function encrypt($thisVal)
{
   select lower(hex(aes_encrypt(:what,:salt))) as encValue
}

有没有办法可以在不使用我正在使用的函数或在sql本身使用加密的情况下执行加密部分?我不想把aes_encrypt部分放在sql本身,因为如果出现问题,人们可以看到正在做什么。我可以以某种方式加密name并返回sql的结果。也许将它保存在MySql函数中。

此外,存储aes_encrypt中使用的keyString的最安全的方法是什么。我目前将它们作为常量存储在php文件中。

1 个答案:

答案 0 :(得分:1)

  

有没有办法可以在不使用我正在使用的功能

的情况下进行加密部分

是什么让你觉得在PHP中进行加密是个坏主意还是不安全?一般来说,通过PHP进行加密是安全的(例如使用mcrypt)。

  

此外,存储在aes_encrypt中使用的keyString的最安全的方法是什么。我目前将它们作为常量存储在php文件中。

为了获得最佳安全性,请将加密密钥存储在公共HTML之外(或从文档根目录之外)。只要常量文件不驻留在文档根目录中,它就可以了。还要考虑服务器上的哪些用户可以访问该文件 - 您希望它是“需要知道”的基础。