我的任务是将Postgres 13数据库迁移到MariaDB。现有的Postgres数据库在插入时使用pgp_sym_encrypt
来加密某些数据值:
insert into a_table (
normal_value,
secret_value
) values (
'normal',
pgp_sym_encrypt(0.123::text, 'secret_key')
)
字符串
然后用以下方法解密:
select
normal_value,
cast(pgp_sym_decrypt(secret_value, 'secret_key') as double precision)
from a_table
型
MariaDB有这样的东西吗?迁移现有数据时有哪些选项?
1条答案
按热度按时间hwazgwia1#
选项1:迁移到AES加密/解密
使用postgres将列中的值更改为支持AES_ENCRYPT/DECRYPT的值,并迁移以下内容:
字符串
参考:postgres fiddle
使用MariaDB函数AES_DECRYPT/ENCRYPT,现在可以解密secret_sym。
型
参考:mariadb fiddle
参考:希望很快注意到基于AES functions的非ecb
选项二:创建PGP自定义项
服务器中似乎没有现有的PGP函数,并且UDF functions的集合似乎不包括它。
但是,使用Rust UDF crate创建自己的UDF函数非常容易。
pgp crate似乎支持像PostgreSQL一样的对称PGP
对Rust UDF的贡献请求是一个很好的地方,可以让您的工作可用。如果它超出了你的能力/时间可用性,你可以只要求它,并提供支付其实施。