【发布时间】:2020-12-11 00:55:20
【问题描述】:
我的任务是通过可能不安全的通道(电子邮件的正文 - 这是一项硬性要求)从一台服务器上的数据库向不同环境中的另一台服务器发送字符串。为了安全地执行此操作,我设计了一种方法,通过该方法压缩字符串,使用 AES 加密,转换为 base64 以防止电子邮件系统破坏它,然后在另一端反转此过程。为了生成加密和编码的字符串,使用了这些 MySQL 函数(我现在不关心压缩步骤):
set @foo = aes_encrypt('foobarbazfoobarbazfoobarbazfoobarbaz', 'AN_AES_KEY');
set @bar = to_base64(convert(@foo using ascii)); /* this is what's sent via email */
接收器程序是用 Kotlin 编写的,必须反转每个步骤,然后将结果写入数据库。不幸的是,我似乎在第一个障碍上跌倒了。我已经尝试了许多 base64 解码选项,但令人沮丧的是,它们都没有重现我然后用我的密钥解密的 AES 密文。我在更改解码功能时注意到以下行为:
-
每个函数都会产生与 AES 密文不匹配的无意义输出。
-
每个函数产生正确的字节数(IE与密文相同)
任何见解将不胜感激!
【问题讨论】:
标签: mysql email kotlin base64 aes