使用PHP在SQLite中实现SQL AES加密

使用PHP在SQLite中实现SQL AES加密,php,sql,sqlite,aes,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中是否可以使用相同的查询?我认为您有两个选项: 在PHP级别加密您

是否可以使用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中是否可以使用相同的查询?

我认为您有两个选项:

  • 在PHP级别加密您的值,并将其存储为blob或base64字符串

  • 执行以下命令(与任何其他常规SQL命令一样)加密整个数据库:PRAGMA hexkey='0x\u您的hex\u格式的密钥'。不要忘记,在打开数据库以运行SELECT查询时也要这样做。这是官方文件


大约10分钟前,我用
Ubuntu 16.04 LTS 64位
在我的HP笔记本电脑上完成了
PHP7.2.2
的安装。您不需要为
SQLite
加密扩展获取许可证(请参阅)。在现有的
PHP
扩展之上,我添加了一些
C
文件,其中包含
AES
SQLite
函数,用于en/decrypting Pager。它工作得很好,现在我将尝试使用Intel i5内置的AES功能使其工作,以充分利用硬件本身。 现在,要打开sqlite db,我可以使用以下命令:

class MyDB extends SQLite3 {
      function __construct(){
        $this->open('sqlite3.db',SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, 'your_password_here');
      }
}
加密整个数据库绝对是最好的解决方案。
详细情况请给我留言。我可能很快就会发布此解决方案。

您的意思是“此查询在MySQL中工作”。SQLite没有内置的AES加密函数,所以您必须发送加密数据。所以我不能在SQLite中使用这个AES_加密?那么我如何在SQLite中使用AES?在PHP端加密和解密数据。将加密数据存储在SQLite BLOB中。查看SQLCipher-它可能是您实际需要的。我已经制作了一个PHP AEE加密,它可以工作,但我需要使用AES作为SQL查询,因此感谢您的回复,我将尝试SQLite加密扩展,如果我有任何问题,我会回来。Hi Mbarthelmy,你有没有关于如何在PHP中为sqlite使用这个PRAGMA的例子。当我使用它时,它说文件不是数据库。有什么想法吗?