执行加密的方法有很多。一种方法是,您可以使用秘密密钥对NAME
和Salary
列中的数据进行哈希处理。
有很多哈希算法,包括但不限于md5
,sha1
,sha256
。 Postgresql中的pgcrypto模块提供了一些哈希函数供您使用。
无论使用哪种哈希算法,始终会将相同的值哈希到同一字符串。例如,A
的md5哈希始终为7fc56270e7a70fa81a5935b72eacbe29
,而B
的md5哈希始终为9d5ed678fe57bcca610140957afab571
。因此,您可以照常连接表。
示例:
CREATE TABLE table1 (
"Name" VARCHAR(1),"Date" TIMESTAMP,"Salary" INTEGER
);
INSERT INTO table1
("Name","Date","Salary")
VALUES
(pgp_sym_encrypt('A','key'),'01/01/2019','100'),(pgp_sym_encrypt('A','01/02/2019','200'),(pgp_sym_encrypt('B','300');
CREATE TABLE table2 (
"Name" VARCHAR(1),"Date of Birth" TIMESTAMP,"No of Absence" INTEGER
);
INSERT INTO table2
("Name","Date of Birth","No of Absence")
VALUES
(pgp_sym_encrypt('A','10/12/1991','10'),'10/12/1992','20');
SELECT pgp_sym_decrypt(table1."Name",table1."Salary",table1."Date",pgp_sym_decrypt(table2."Name",table2."Date of Birth",table2."No of Absence"
FROM table1 INNER JOIN table2 ON (table1."Name" = table2."Name");
请注意已安装pgcrypto。
本文链接:https://www.f2er.com/3157792.html