php - 进行 aes_encrypt 的更好方法以及如何存储 aes_encrypt 的 keyString

标签 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 中使用的 key 字符串的最安全方法是什么。我目前将它们作为常量存储在 php 文件中。

最佳答案

Is there a way I can do the encrypt part without using the function I'm using

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

Also, what is the safest way to store the keyString that's used in aes_encrypt. I currently store them as constants in a php file.

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

关于php - 进行 aes_encrypt 的更好方法以及如何存储 aes_encrypt 的 keyString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938414/

相关文章:

MySQL - 错误 1215,无法添加外键约束

MySQL 如何从与你有过交互的用户那里获取用户的事件?

MySql Recursive - 从给定的id获取所有 child 和 parent

javascript - ReadyState 没有更改为 4

php检查指定时间是否已过期

mysql - 将 Zope 数据转换为 Mysql

mysql - 统计订单数量和订单行报告

php - 动态回显所有列名称和所有行

php - 万事达卡支付集成服务无法在 PHP 中运行

php - json 中的几个数据库列中只有一个结果为 null