解码使用OpenSSL创建的消息和MySQL社区服务器中的存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解码使用OpenSSL创建的消息和MySQL社区服务器中的存储过程相关的知识,希望对你有一定的参考价值。

我有一个使用OpenSSL和我的私钥编码的消息,我想使用公钥(我将存储在mysql中的表中)在MySQL中的存储过程中解码消息。

以下是我从Linux命令行生成消息的方法......

echo "The message I want encoded" | openssl rsautl -encrypt -inkey private_key.pem -out >(base64)

这是它产生的输出......

B7b2L7AMD7NBcg30N+DrO4gJFojzw06GKJFZTJsJCEjIeHBNjN2tUh7Nx18Y69wN342FhVQ4HYxv
A5+kVB5LN2v81R1y4qTn/z/PqPTVdAiH/F7zNb/XsrzkLhTCqHgCwxwRPuiR4PTZ8InSo4X88r68
v7LcQD58z20bLq98dcXmPRPpsLqwY4KSofSajkh4LZ4+K+5wiWRv0LyMnFtHCuc97Rafzm7kYf7c
Nvts0C3mmwieUXzBCJiunLw8Hn6waD451Kvm3cCjhyPIYOpyA5Vkzxb2XQy3KOpAHK8TOqdUI4Gy
TPK8OCBaEknM4ywF0AuMdpV9ntk0JfLAyka6WQ==

现在,如果我使用公钥将该Base64字符串传递给MySQL中的过程,我可以解码吗?

这甚至可能吗?我找不到任何例子。我猜测AES_DECRYPT是要使用的命令,但我不明白这是怎么或者是否是正确的方法。

由于我处于实验模式,我手动完成所有操作,因此除了我最后调用的MySQL存储过程之外,没有特定的语言。但是简单的SQL将用于演示如何完成此操作。

我只需轻轻一点即可开始。例如,如果我将公钥存储在名为@pubkey的变量中,并将消息存储在名为@message的变量中,我是否会使用这样的SQL?

select AES_DECRYPT(from_base64(@message),@pubkey) as result;

我试过这个,它不会解码。所以我认为还有更多。任何帮助是极大的赞赏。

答案

我终于找到了我想要的东西,看起来MySQL社区服务器不支持我希望的功能。

我想要的功能只在MySQL Enterprise中,所以要做我想做的事情,我将不得不对应用程序进行加密/解密。

对于对相关命令感兴趣的任何人,请随时查看MySQL站点:https://dev.mysql.com/doc/refman/5.6/en/enterprise-encryption-functions.html

以上是关于解码使用OpenSSL创建的消息和MySQL社区服务器中的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

OpenSSL 使用 base64 编码/解码(liang19890820)

mysql加密连接三openssl 创建 SSL 证书和密钥

使用openssl BIO逐块进行base64解码

使用OpenSSL创建CA和申请证书

openssl

使用 OpenSSL 解码 ASN.1 DER OCTET STRING