一、什么是数据脱敏

数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。
百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。

生活中不乏数据脱敏的例子,比如我们最常见的火车票(有号的地方)、电商收货人地址都会对敏感信息做处理。

dataphpphp数据脱敏处置身份证手机号等 Webpack

二、为什么要进行数据脱敏?

在涉及客户安全数据或者一些商业性敏感数据的情形下,在不违反系统规则条件下,对真实数据进行改造并供应测试利用,如身份证号、手机号、卡号、客户号等个人信息都须要进行数据脱敏。

三、如何实现

以下是用php写的脱敏函数

/ 数据脱敏函数 @param $string 须要脱敏值 @param int $start 开始 @param int $length 结束 @param string $re 脱敏替代符号 @return bool|string 例子: dataDesensitization('13126989876', 3, 4); //1319876 dataDesensitization('张三四', 0, -1); //四 /function dataDesensitization($string, $start = 0, $length = 0, $re = ''){ if (empty($string)){ return false; } $strarr = array(); $mb_strlen = mb_strlen($string); while ($mb_strlen) {//循环把字符串变为数组 $strarr[] = mb_substr($string, 0, 1, 'utf8'); $string = mb_substr($string, 1, $mb_strlen, 'utf8'); $mb_strlen = mb_strlen($string); } $strlen = count($strarr); $begin = $start >= 0 ? $start : ($strlen - abs($start)); $end = $last = $strlen - 1; if ($length > 0) { $end = $begin + $length - 1; } elseif ($length < 0) { $end -= abs($length); } for ($i = $begin; $i <= $end; $i++) { $strarr[$i] = $re; } if ($begin >= $end || $begin >= $last || $end > $last) return false; return implode('', $strarr);}