我正在构建一个具有 Java Swing 前端访问 postgres 数据库的系统。在本周发现Jasypt之前,我原本打算使用 Postgres 自己的加密机制。它工作得很好,但我现在也希望对网络上的密码进行加密,因此我求助于 Jasypt。
问题是,我需要一个固定密码才能输入到我的 Postgres 存储函数中。即如果输入密码是“aaa”,那么任何其他输入到 Postgres 存储函数中的密码(“aaa”除外)都将不匹配。
有没有办法让这两种加密机制协同工作,还是我必须转储 Postgres?
我的用户表:
CREATE TABLE "user"
(
id serial NOT NULL,
cryptpwd text NOT NULL,
md5pwd text NOT NULL,
...
)
加密密码:
cryptedPassword = crypt(passwordIn, gen_salt('md5'));
md5Password = md5(passwordIn);
INSERT INTO "user"(username, cryptpwd, md5pwd, ...)
VALUES (usernameIn, cryptedPassword, md5Password, ...);
解密密码:
select ..... from "user" .... where username = usernameIn and cryptpwd = crypt(passwordIn, cryptpwd);
如果我不能让他们两个一起工作,那么我将不得不转储 Postgres 的机制,因为我需要通过网络进行加密。
此外,关于数据库连接字符串和数据库用户名和密码(不使用任何框架......希望使用 SSL 的普通旧 jdbc 连接 - 尚未实现),我认为我无法使用 Jasypt,因为我需要在数据库级别对其进行解密。对于这种情况,仅 SSL 就足够了吗?
谢谢。