js 几种通用的脱敏方法

1,328 阅读2分钟

脱敏处理是信息安全的重要手段,它可以有效保护敏感信息不被暴露。在JavaScript中,我们可以使用一些基本的脱敏处理方法,例如使用正则表达式进行替换,或者自定义函数实现脱敏处理。下面是其中几种常见的方法:

  1. 字符串替换:使用字符串的替换方法,例如replace,将敏感信息替换为特定的字符串。例如,可以将身份证号码的前几位替换成"",手机号码的中间几位替换成""。
function desensitizeString(inputString) {
  // 将敏感信息替换为特定字符串
  let desensitizedString = inputString.replace(/[0-9]/g, '*');
  return desensitizedString;
}

let sensitiveData = "1234567890";
let desensitizedData = desensitizeString(sensitiveData);
console.log(desensitizedData); // 输出:**********
  1. 字符串截取:对于一些敏感信息,可以使用字符串的截取方法,例如substringslice,只保留部分非敏感信息,将敏感信息部分截取掉。
function desensitizeSubstring(inputString, start, end) {
  // 保留部分非敏感信息,将敏感信息部分截取掉
  let desensitizedString = inputString.substring(0, start) + "*".repeat(end - start) + inputString.substring(end);
  return desensitizedString;
}

let sensitiveData = "1234567890";
let desensitizedData = desensitizeSubstring(sensitiveData, 2, 6);
console.log(desensitizedData); // 输出:12****7890
  1. 加密算法:使用加密算法对敏感信息进行加密,确保只有授权的用户能够解密和查看真实信息。常见的加密算法有AES、RSA等。这种方法需要在服务器端进行加密和解密操作。
  2. 其他方法,以下是一些JavaScript中常用的脱敏处理方法:

4.1. 电话号码脱敏:

function desensitizePhoneNumber(phoneNumber) {
    return phoneNumber.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}

4.2. 电子邮件脱敏:

function desensitizeEmail(email) {
    let emailArray = email.split('@');
    return emailArray[0].replace(/(\w{3})\w*(\w{2})/, '$1****$2') + '@' + emailArray[1];
}

4.3. 身份证号脱敏:

function desensitizeIdCard(idCard) {
    return idCard.replace(/(\d{6})\d{8}(\d{4})/, '$1********$2');
}

4.4. 姓名脱敏:

function desensitizeName(name) {
    return name.replace(/(.).*/, '$1**');
}

这些方法可以根据具体的需求和情况进行调整和组合使用。