iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle自定义脱敏函数的代码详解
  • 847
分享到

Oracle自定义脱敏函数的代码详解

2024-04-02 19:04:59 847人浏览 泡泡鱼
摘要

对于信息安全有要求的,在数据下发和同步过程中需要对含有用户身份信息的敏感字段脱敏,包括用户姓名、证件号、地址等等,下面是自定义函数的代码 CREATE OR REPLACE FUNCTioN

对于信息安全有要求的,在数据下发和同步过程中需要对含有用户身份信息的敏感字段脱敏,包括用户姓名、证件号、地址等等,下面是自定义函数的代码


CREATE OR REPLACE FUNCTioN F_GET_SENSITIVE(IN_STR VARCHAR, IN_TYPE NUMBER)
 RETURN VARCHAR2 IS
 V_STR_LENGTH NUMBER;
 V_NAME    VARCHAR2(1000);
 V_N     NUMBER;
 V_HID    VARCHAR2(200);
 V_sql    VARCHAR2(200);
 V_NUM_FLAG  NUMBER;
 
BEGIN
 V_STR_LENGTH := LENGTH(IN_STR);
 V_N     := 0;
 IF V_STR_LENGTH=0 THEN
   RETURN(NULL);
 END IF;
 
 IF IN_TYPE = 1 OR IN_TYPE=11 THEN
  IF V_STR_LENGTH = 2 OR V_STR_LENGTH = 3 THEN
   V_NAME := REGEXP_REPLACE(IN_STR, '(.)', '*', 2, 1);
  ELSIF V_STR_LENGTH < 2 THEN
   V_NAME :=IN_STR;
  ELSE
   WHILE V_N < V_STR_LENGTH / 2 LOOP
    V_N  := V_N + 1;
    V_HID := V_HID || '*';
   END LOOP;
   V_NAME := SUBSTR(IN_STR, 0, V_STR_LENGTH / 2) || V_HID;
  END IF;
  RETURN(V_NAME);
 END IF;
 
 IF IN_TYPE = 2 THEN
  IF V_STR_LENGTH = 15 THEN
   V_NAME := SUBSTR(IN_STR, 0, 6) || '******' || SUBSTR(IN_STR, -3, 3);
  ELSIF V_STR_LENGTH = 18 THEN
   V_NAME := SUBSTR(IN_STR, 0, 6) || '********' || SUBSTR(IN_STR, -4, 4);
  ELSE
   WHILE V_N < V_STR_LENGTH / 3 LOOP
    V_N  := V_N + 1;
    V_HID := V_HID || '*';
   END LOOP;
   V_NAME := SUBSTR(IN_STR, 0, V_STR_LENGTH / 3) || V_HID ||
        SUBSTR(IN_STR, -V_STR_LENGTH / 3, V_STR_LENGTH / 3);
  END IF;
  RETURN(V_NAME);
 END IF;
 
 IF IN_TYPE = 3 THEN
  IF V_STR_LENGTH > 15 THEN
   V_NAME := SUBSTR(IN_STR, 0, 4) || '********' || SUBSTR(IN_STR, -4, 4);
  ELSE
   V_NAME :=IN_STR;
  END IF;
   RETURN(V_NAME);
 END IF;
 
 IF IN_TYPE = 4 THEN
  V_NAME := SUBSTR(IN_STR, 0, V_STR_LENGTH - 4) || '****';
  RETURN(V_NAME);
 END IF;
 
 IF IN_TYPE = 5 THEN
  V_SQL := 'SELECT COUNT(1) FROM DUAL WHERE LENGTH(''' || IN_STR ||
       ''') = LENGTH(REGEXP_REPLACE(''' || IN_STR || ''', ''[^0-9]''))';
  EXECUTE IMMEDIATE V_SQL
   INTO V_NUM_FLAG;
  IF V_NUM_FLAG = 1 AND (V_STR_LENGTH = 7 OR V_STR_LENGTH = 8) THEN
   V_NAME := SUBSTR(IN_STR, 0, 2) || '****' || SUBSTR(IN_STR, -2, 2);
  ELSIF V_NUM_FLAG = 1 AND V_STR_LENGTH = 11 THEN
   V_NAME := SUBSTR(IN_STR, 0, 3) || '*****' || SUBSTR(IN_STR, -3, 3);
  ELSE
   V_NAME := IN_STR;
  END IF;
   RETURN(V_NAME);
 END IF;
 RETURN(IN_STR);
EXCEPTION
 WHEN OTHERS THEN
  -- DBMS_OUTPUT.PUT_LINE('1'||V_SQL);
  V_NAME := '-1';
  RETURN V_NAME;
END F_GET_SENSITIVE;
您可能感兴趣的文档:

--结束END--

本文标题: Oracle自定义脱敏函数的代码详解

本文链接: https://www.lsjlt.com/news/51500.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle自定义脱敏函数的代码详解
    对于信息安全有要求的,在数据下发和同步过程中需要对含有用户身份信息的敏感字段脱敏,包括用户姓名、证件号、地址等等,下面是自定义函数的代码 CREATE OR REPLACE FUNCTION ...
    99+
    2024-04-02
  • SpringBoot 自定义注解之脱敏注解详解
    目录自定义注解之脱敏注解一、脱敏后的效果二、代码1.脱敏注解2.定义脱敏类型3.敏感工具类4.脱敏序列化信息小结一下自己手写的一个高效自定义字符串脱敏注解自己写了个 仅供参考自定义注...
    99+
    2024-04-02
  • SpringBoot使用自定义注解实现数据脱敏过程详细解析
    目录前言一、引入hutool工具类二、定义常用需要脱敏的数据类型的枚举三、定义脱敏方式枚举四、自定义脱敏的注解五、自定义Jackson的序列化方式六、使用七、脱敏效果前言 对于某些接...
    99+
    2023-02-15
    SpringBoot数据脱敏 SpringBoot自定义注解实现数据脱敏
  • SpringBoot 自定义注解实现涉密字段脱敏
    目录1. 创建隐私数据类型枚举:PrivacyTypeEnum2. 创建自定义隐私注解:PrivacyEncrypt3. 创建自定义序列化器:PrivacySerializer4. ...
    99+
    2023-03-24
    SpringBoot自定义注解 涉密字段脱敏
  • SpringBoot自定义注解之脱敏注解的示例分析
    这篇文章将为大家详细讲解有关SpringBoot自定义注解之脱敏注解的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。自定义注解之脱敏注解数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏...
    99+
    2023-06-22
  • SpringBoot怎么自定义注解实现涉密字段脱敏
    这篇文章主要讲解了“SpringBoot怎么自定义注解实现涉密字段脱敏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么自定义注解实现涉密字段脱敏”吧!关于数据脱敏,网上...
    99+
    2023-07-05
  • 使用自定义注解实现加解密及脱敏方式
    目录自定义注解实现加解密及脱敏定义自定义注解构造AOP逻辑测试脱敏逻辑自定义一种字符串的加密与解密自定义注解实现加解密及脱敏 定义自定义注解 @Documented @Targe...
    99+
    2024-04-02
  • 详解Vue 自定义hook 函数
    目录定义使用封装发ajax请求的hook函数(ts版本)定义 什么是hook 本质是一个函数,把 setup 函数中使用的 Composition API (组合API)进行了封装类...
    99+
    2024-04-02
  • 使用自定义Json注解实现输出日志字段脱敏
    自定义Json注解实现输出日志字段脱敏 背景 在日志输出的时候,有时会输出一些用户的敏感信息,如手机号,身份证号,银行卡号等,现需要对这些信息在日志输出的时候进行脱敏处理 思路 使用...
    99+
    2024-04-02
  • JavaScript自定义函数用法详解
    JavaScript中的函数分为两种:系统函数和自定义函数,这里主要讲解自定义函数。 自定义函数 1、语法: 注意: 传入的参数是可选的。 例如: <!DOCTYPE htm...
    99+
    2024-04-02
  • mybatis自定义参数类型转换器数据库字段加密脱敏
    目录1 问题背景2 解决方案2.1 使用数据库加密算法2.2 使用mybatis的自定义参数类型转换器3 一般web项目使用3.1 创建自定义Java类型3.2 自定义类的转换处理器...
    99+
    2024-04-02
  • Java 实现数据脱敏的详细讲解
    数据脱敏是一种数据保护技术,它通过对敏感数据进行修改或替换,使得数据无法被识别或关联到个人身份,从而保护个人隐私。在Java中,可以通过各种技术来实现数据脱敏,本文将详细讲解Java实现数据脱敏的方法...
    99+
    2023-09-07
    java 正则表达式 开发语言
  • springboot中如何使用自定义注解实现加解密及脱敏方式
    这篇文章主要介绍springboot中如何使用自定义注解实现加解密及脱敏方式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!自定义注解实现加解密及脱敏定义自定义注解@Documented@Target({Element...
    99+
    2023-06-22
  • 如何使用自定义Json注解实现输出日志字段脱敏
    这篇文章给大家分享的是有关如何使用自定义Json注解实现输出日志字段脱敏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。自定义Json注解实现输出日志字段脱敏背景在日志输出的时候,有时会输出一些用户的敏感信息,如手...
    99+
    2023-06-22
  • javascript中自定义函数方法的代码怎么写
    这篇文章主要介绍了javascript中自定义函数方法的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript中自定义函数方法的代码怎么写文章都会有所收获...
    99+
    2024-04-02
  • 自定义golang函数实现的代码生成和自动化
    在 go 中,可通过创建自定义函数来实现代码生成和自动化。代码生成函数接收参数列表,返回生成的代码和一个 error。自动化函数使用格式化的输出自动执行任务,接收参数列表并返回一个 er...
    99+
    2024-04-27
    git golang
  • 详解MindSpore自定义模型损失函数
    目录一、技术背景二、MindSpore内置的损失函数三、自定义损失函数四、自定义其他算子五、多层算子的应用六、重定义reduction一、技术背景 损失函数是机器学习中直接决定训练结...
    99+
    2024-04-02
  • PHP 函数自定义函数:创建灵活且可扩展的代码
    php 自定义函数通过 function 关键字创建,可提升代码模块化和可重用性:创建方法: 使用 function 关键字、函数名称和参数创建函数。调用方法: 输入函数名称并传递参数即...
    99+
    2024-04-12
    函数 php
  • 如何将自定义函数集成到PHP代码中?
    在 php 中,您可以通过三个步骤集成自定义函数:创建函数加载函数调用函数这可通过以下方式应用于实际案例:创建一个计算矩形面积的自定义函数在代码中加载该函数调用函数多次以计算不同矩形的面...
    99+
    2024-04-18
    php 自定义函数 代码可读性
  • Presto自定义函数@SqlNullable引发问题详解
    目录引发Presto问题错误具体内容修改UDF源码引发Presto问题 看到标题我们会想到是由于@SqlNullable注解引发的问题,我们先看一段代码,正是这段有意思的代码,让我...
    99+
    2022-12-08
    Presto自定义函数@SqlNullable Presto SqlNullable
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作