使用PHP在SQLite中实现SQL AES ENCRYPTION

时间:2012-10-03 16:20:14

标签: php sql sqlite aes

是否可以使用PHP将SQL AES_ENCRYPT / AES_DECRYPT实现到SQLite中? 例如,我有一个PHP代码:

$SQL = "INSERT INTO parent (Request, Column1, Column2) VALUES ('$Request',AES_ENCRYPT('$Col1','$key'),AES_ENCRYPT('$Col2','$key'))";

并且此查询在SQL中有效,但是可以在SQLite中使用相同的查询吗?

2 个答案:

答案 0 :(得分:1)

我说你有两个选择:

  • 在PHP级别加密您的值并将它们存储为BLOB或base64字符串

  • 加密执行以下命令的整个数据库(就像任何其他常规SQL命令一样): PRAGMA hexkey ='0x_your_key_in_hex_format'。不要忘记在打开数据库以运行SELECT查询时也要这样做。 Here是官方文档。

答案 1 :(得分:1)

好吧,大约10分钟前,我使用PHP 7.2.2在我的惠普笔记本电脑上安装了Ubuntu 16.04 LTS 64bit。您无需获取SQLite加密扩展(SEE)的许可证。除了现有的PHP扩展程序之外,我添加了一些CAESSQLite个函数用于en / decrypting Pager。它运行良好,现在我将尝试使用英特尔i5内置AES功能使其工作 - 从硬件本身中获得最佳效果。 现在,要打开一个sqlite db,我可以使用以下内容:

class MyDB extends SQLite3 {
      function __construct(){
        $this->open('sqlite3.db',SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, 'your_password_here');
      }
}

加密整个数据库绝对是最好的解决方案。 给我写一条消息,了解详情。我很快就会发布这个解决方案。