postgresql数据库使用AES加解密和java使用AES加解密不一致的问题

本文讲述了在整改P2P平台时,为保护敏感信息,需确保Java服务端与PostgreSQL数据库的AES加解密一致。通过安装pgcrypto模块,发现由于加密模式、填充模式和密钥处理的差异导致加解密结果不一致。最终找到问题在于Java端密钥处理,调整后实现两者加解密匹配。文章提醒在处理跨平台加密时注意模式和细节的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       公司内部的P2P平台由于监管,进行了一系列不合规项的整改。其中有一条就是要对数据库中一些比较敏感的信息进行加密,比如:手机,邮箱,身份证,银行卡之类的。解决方案是,在整个过程,查询的时候在java服务端进行解密,插入和更新的时候在java服务端进行加密。数据库端则存放加密后的信息。本来只需要考虑java服务端加解密后能保持一致即可,但是为了方便某些在数据库端进行运维的人能使用sql对已加密的信息进行处理。这里要求了java服务端加密的内容能够在数据库端进行解密。所以两边需要使用一样的算法。

      首先,第一步就是在postgresql数据库端安装pgcrypto模块

postgres=#    \c superp2b_test                                                                                                              

You are now connected to database "superp2b_test" as user "enterprisedb".

superp2b_test=# create extension pgcrypto;

CREATE EXTENSION

superp2b_test=# 

安装完后就可以使用postgresql数据库中的decrypt加密函数和encrypt解密函数了。

      在网上找了java的AES加解密的工具类,进行加密,然后数据库端进行解密,报错。发现两边的加解密不一致。网上查了AES算法,才发现AES算法有多种加密模式&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值