应工作要求,需要对展示的内容进行敏感信息替换。
琢磨的一些时间,编写的函数匹配率还是比较高的。

顺便说下思路,使用的是正则匹配替换和字符串替换。函数可以再改进.

先把需要匹配的内容写好相应的正则,然后进行全部匹配遍历。
获取匹配结果数组A,同时获取匹配规则B,(解决内容有多次符合匹配规则的情况,导致最后替换出现结果一样的问题)

再根据结果A,和结果B,进行内容的真正匹配处理。

代码:

<?php/*** 截取内容中的数字,替换为其他* @param type $string* @param type $lengths* @param type $padString* @return boolean*/
function replace_numeral($string, $lengths = array(), $padString = '*') {if (!$string || !$lengths) {return false;}$lengths = !is_array($lengths) ? array($lengths) : $lengths;$pattern = $strings = array();rsort(&$lengths, SORT_NUMERIC);foreach ($lengths as $length) {preg_match_all('/\d{' . ((int) $length - 1) . '}[\d|x|X]/', $string, $matches);if (isset($matches[0]) && $matches[0]) {foreach ($matches[0] as $k => $v) {if ($v) {$pattern[$k] = '/' . $v . '/';$strings[$k] = $v ? str_pad($padString, $length - 4, $padString) . substr($v, -4, 4) : '';}}}$string = preg_replace($pattern, $strings, $string);}return $string;
}/*** 替换邮箱* @param type $string* @param type $length* @return boolean*/
function replace_mail($string, $length = 3) {if (!$string) {return false;}preg_match_all('/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/', $string, $matches);foreach ($matches[0] as $k => $v) {if (isset($matches[0]) && $matches[0]) {foreach ($matches[0] as $k => $v) {if ($v) {$pattern[$k] = $v;$strings[$k] = substr_replace($v, str_pad('*', strpos($v, '@') - $length * 2, '*'), $length, strpos($v, '@') - $length * 2);}}}}$string = str_replace($pattern, $strings, $string);return ($string);
}/*** 替换车牌* @param type $string* @return type*/
function replace_vehicle_reg_no($string) {$arr_area = array('赣', '桂', '京', '津', '冀', '晋', '蒙', '辽', '吉','黑', '沪', '苏', '浙', '皖', '闽', '鲁', '豫', '鄂','湘', '粤', '琼', '渝', '川', '贵', '云', '藏', '陕','甘', '青', '宁', '新');foreach ($arr_area AS $k => $v) {preg_match_all('/' . $v . '[a-zA-Z]{1}[a-zA-Z0-9]{5}/', $string, $matches);if (isset($matches[0]) && $matches[0]) {foreach ($matches[0] as $va) {if ($va) {$pattern[$k] = '/' . $va . '/';$strings[$k] = substr_replace($va, '**', -4, 2);}}$string = preg_replace($pattern, $strings, $string);}}return $string;
}/*** 替换车架号* @param type $string* @param type $lengths* @param type $padString* @return boolean*/
function replace_vin($string) {if (!$string) {return false;}$pattern = $strings = array();preg_match_all('/[a-zA-Z0-9]{1,11}[0-9]{5}[\d|x|X]/', $string, $matches);if (isset($matches[0]) && $matches[0]) {foreach ($matches[0] as $k => $v) {if ($v) {$pattern[$k] = '/' . $v . '/';$strings[$k] = substr_replace($v, '******', 6, 5);}}}$string = preg_replace($pattern, $strings, $string);return $string;
}
?>

再弄一个转换汉字为unicode编码(十六进制)的函数

<?phpfunction unicode_encode($name) {$name = iconv('UTF-8', 'UCS-2', $name);$len = strlen($name);$str = '';for ($i = 0; $i < $len - 1; $i = $i + 2) {$c = $name[$i];$c2 = $name[$i + 1];if (ord($c) > 0) { // 两个字节的文字$str .= '\u' . base_convert(ord($c), 10, 16) . base_convert(ord($c2), 10, 16);} else {$str .= $c2;}}return $str;}function unicode_decode($name) {// 转换编码,将Unicode编码转换成可以浏览的utf-8编码$pattern = '/([\w]+)|(\\\u([\w]{4}))/i';preg_match_all($pattern, $name, $matches);if (!empty($matches)) {$name = '';for ($j = 0; $j < count($matches[0]); $j++) {$str = $matches[0][$j];if (strpos($str, '\\u') === 0) {$code = base_convert(substr($str, 2, 2), 16, 10);$code2 = base_convert(substr($str, 4), 16, 10);$c = chr($code) . chr($code2);$c = iconv('UCS-2', 'UTF-8', $c);$name .= $c;} else {$name .= $str;}}}return $name;}
?>

车牌、手机、身份证、等敏感信息 屏蔽 替换 、中文转unicode编码 函数相关推荐

  1. 智行火车票能否把用户的敏感信息屏蔽?

    智行火车票能否把用户的敏感信息屏蔽?如果手机丢了,姓名身份证手机号就都丢了,捡到手机的人可以利用这些信息重置密码,登录淘宝,进而把支付宝中的免密支付和快捷支付的钱转走,建议把敏感信息部分用星号加密显示 ...

  2. python加密敏感信息_小技巧 | 用python给敏感信息加水印

    加水印,大家对这个都不陌生,但是很多人都懒的加,大多数人都觉得没必要.但是对于类似于身份证这些敏感信息,个人建议还是打一下水印,虽然对于现在的技术来说,消水印也是分分钟的事情,但是打还是比不打好! 市 ...

  3. MySQL对身份证号、手机号等敏感信息用****加密

    目录 身份证 手机 邮箱 对表中敏感信息身份证号.手机号.邮箱进行***加密处理 身份证 UPDATE student set SFZ=REPLACE(SFZ,SUBSTRING(SFZ,11,8), ...

  4. 停车场寻车系统(识别车牌,手机app查询相关信息)

    停车场寻车系统 文章目录 停车场寻车系统 前言 一.手机app 二.车牌识别 三.数据查询 总结 停车场寻车系统 前言 上个星期用了一周左右做了一个停车场寻车系统的项目,可以识别车牌,通过手机app查 ...

  5. Web应用防火墙的敏感信息泄露保护功能可以防护哪些敏感数据泄漏?

    背景信息 防敏感信息泄漏功能是Web应用防火墙针对<网络安全法>提出的"网络运营者应当采取技术措施和其他必要措施,确保其收集的个人信息安全,防止信息泄露.毁损.丢失.在发生或者可 ...

  6. 检测到目标url存在内部ip地址泄露_Cendertron,动态爬虫与敏感信息泄露检测

    Cendertron,动态爬虫与敏感信息泄露检测 Cendertron = Crawler + Rendertron Cendertron https://url.wx-coder.cn/HinPM ...

  7. 瑞星:病毒伪装“交行安全控件”盗取用户敏感信息

    瑞星手机安全助手截获了一个最新安卓手机病毒,该病毒伪装成"交行安全控件"潜伏在各大安卓电子市场中,诱导用户下载安装.病毒运行后,诱导用户激活系统设备管理器.隐藏自身启动图标.拦截用 ...

  8. [免费专栏] Android安全之检测APK中调试代码是否暴露敏感信息

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  9. 应急响应-敏感信息泄露怎么解决?

    敏感信息 在业务系统中的保密性要求较高的数据,通常包括系统敏感信息和引用敏感信息.系统敏感信息指的是业务系统本身的基础环境信息,比如系统信息,中间件版本之类的,一旦泄露可能可以协助攻击者提供更多的攻击 ...

最新文章

  1. 作为一个java程序员,常用的linux命令(越攒越多)
  2. C#数组排序(按列)
  3. ubuntu——安装和NS3
  4. mysql 自动重启 计划_解决MYSQL死机,定时重启MYSQL,wdcp计划任务设定方法,
  5. Beetlsql自定义生成entity,mapper,md代码
  6. 文件分割器,一个读取流,相应多个输出流,并且生成的碎片文件都有有序的编号...
  7. 超优 Vue+Element+Spring 中后端解决方案
  8. docker 和挂载文件一起打包成新镜像_Docker文件系统和数据卷
  9. 软件项目组织管理(十)项目沟通管理
  10. 201609-5 祭坛
  11. 01-maven build项目
  12. Crash -- 生成Minidump调试信息
  13. Effective Kotlin 中文版
  14. 程序员为什么单身?细数程序员“六宗罪”
  15. 一组数据,带你读懂“2021中国民营企业500强”背后深意
  16. 乐嘉性格色彩-4色特性,学习感悟
  17. 卢克,学着去读源代码
  18. 冷色调的亮度越高--越偏暖,暖色调的亮度越高--越偏冷
  19. 模拟扑克牌大小软件_扑克与软件工程
  20. WordPress网站为什么及如何使用CDN加速访问

热门文章

  1. LeetCode第319周赛题解
  2. 5分钟通俗易懂了解什么是云存储
  3. Vue生命周期(vue life cycle) 详解
  4. promise.all的使用
  5. [Simulink] 基于模型的测试与验证学习笔记_Step 4:Testing By Simulation
  6. 豆瓣读书top250爬取
  7. 【路径规划-TSP问题】基于粒子群结合蚁群算法求解旅行商问题附matlab代码
  8. oracle业务关系sql,张瑞:Oracle与MySQL搭档满足业务需求
  9. 蓝桥杯真题python B试题 C: 纸张尺寸
  10. 看纷享销客如何布局连接型CRM