AES_Decrypt() 返回空值
AES_Decrypt() returning null value
SQL-这里是新手。我正在使用包含数据(longblob
类型)的 table,它看起来像这样(导入到 phpMyAdmin 中):
这些文件(显然)使用 AES_Encrypt()
进行了 AES 加密。我知道密钥 ID 为 2332 的文件的密钥,我想在 "blahb" (blob) 上调用 AES_Decrypt()
。为此,我写了一个程序:
BEGIN
DECLARE dat longblob;
SELECT blahb into dat from fyle where keeid = p_id;
SELECT AES_Decrypt(dat, p_key) into p_out;
END
并将其嵌入 intp phpMyAdmin,如下所示:
然而,当我使用 keyid 2332 和已知密码调用它时,它只是 returns NULL。
我问这个问题是因为我想知道:
我的存储过程是否正确?
因为如果是的话,我知道我认为正确的密钥实际上是错误的,或者我以错误的方式使用它。由于这是我第一次编写 SQL 程序,所以我不知道错误是在第一个原因还是第二个原因中:/.
(服务器数据: "Server version: 10.1.10-MariaDB - mariadb.org binary distribution", "Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.19")
编辑:运行 评论中的查询显然给出了一个 blob 作为结果,但没有下载 link!然而,它确实大大简化了查询,我现在甚至不必为此创建过程。
您不需要任何过程来获取解密的 blob。改为在 select 语句中调用函数:
SELECT AES_Descrypt(blahb, 'PLACE_HERE_YOUR_KEY') from fyle where keeid = 2332
在 PHPMyAdmin 中将 blob
字段显示为 text
非常简单,并且已在 this question 中介绍。
SQL-这里是新手。我正在使用包含数据(longblob
类型)的 table,它看起来像这样(导入到 phpMyAdmin 中):
这些文件(显然)使用 AES_Encrypt()
进行了 AES 加密。我知道密钥 ID 为 2332 的文件的密钥,我想在 "blahb" (blob) 上调用 AES_Decrypt()
。为此,我写了一个程序:
BEGIN
DECLARE dat longblob;
SELECT blahb into dat from fyle where keeid = p_id;
SELECT AES_Decrypt(dat, p_key) into p_out;
END
并将其嵌入 intp phpMyAdmin,如下所示:
然而,当我使用 keyid 2332 和已知密码调用它时,它只是 returns NULL。
我问这个问题是因为我想知道: 我的存储过程是否正确?
因为如果是的话,我知道我认为正确的密钥实际上是错误的,或者我以错误的方式使用它。由于这是我第一次编写 SQL 程序,所以我不知道错误是在第一个原因还是第二个原因中:/.
(服务器数据: "Server version: 10.1.10-MariaDB - mariadb.org binary distribution", "Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.19")
编辑:运行 评论中的查询显然给出了一个 blob 作为结果,但没有下载 link!然而,它确实大大简化了查询,我现在甚至不必为此创建过程。
您不需要任何过程来获取解密的 blob。改为在 select 语句中调用函数:
SELECT AES_Descrypt(blahb, 'PLACE_HERE_YOUR_KEY') from fyle where keeid = 2332
在 PHPMyAdmin 中将 blob
字段显示为 text
非常简单,并且已在 this question 中介绍。