数据库运维管理系列之关于数据库脱敏和数据库加密的小技巧

网友投稿 243 2022-10-17


数据库运维管理系列之关于数据库脱敏和数据库加密的小技巧

在实际工作中,是否会遇到有如下的需求:

于是乎:

一个FUNCTION搞定了,前端程序在使用的时候,直接使用该函数即可。

函数的定义如下:

CREATE OR REPLACE FUNCTION DATA_PLUS(id_num IN varchar2) RETURN varchar2 IS

new_id varchar2(20);

BEGIN

IF length(id_num) >= 15 THEN

-- 身份证号码类的,保留前三后四位

new_id := replace(id_num, substr(id_num, 4, length(id_num) - 7), '***');

ELSIF length(id_num) = 9 THEN

-- 护照号码类的,保留前二后三位

new_id := replace(id_num, substr(id_num, 3, length(id_num) - 5), '***');

ELSIF length(id_num) = 11 THEN

-- 手机号码类的,保留前三后二位

new_id := replace(id_num, substr(id_num, 4, length(id_num) - 5), '***');

ELSE

new_id := id_num;

END IF;

RETURN new_id;

END;

其实mysql下会很简单一些:应用INSERT+LENGTH俩函数即可。

SELECT

'370285198812120433',

INSERT (

'370285198812120433',

4,

LENGTH('370285198812120433') - 7,

'***'

) AS col1,

'E19881212',

INSERT (

'E19881212',

3,

LENGTH('E19881212') - 5,

'***'

) AS col2,

'18562607972',

INSERT (

'18562607972',

4,

LENGTH('18562607972') - 5,

'***'

) AS col3;

上面的小技巧在数据脱敏还是蛮好用的,

在拓展一下,数据加解密等,都可以采用类似的方式等。

总之,在没钱买产品的时候,利用一下数据库的自身功能,还是能够实现一些需求的。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Digicert EV证书签名后出现“证书对于请求用法无效”的解决方案
下一篇:Java实现Windows计算器界面
相关文章

 发表评论

暂时没有评论,来抢沙发吧~