首页
Preview

Golang中实现手机号脱敏(三种方案)

在Golang中实现手机号脱敏可以使用多种方式,以下是其中的几种:

  1. 常规方式

这是一种最基本的方式,使用字符串切片将手机号码进行分割,并将中间的数字用*代替。

func DesensitizePhoneNum(phoneNum string) string {
    if len(phoneNum) != 11 {
        return phoneNum
    }

    return phoneNum[:3] + "****" + phoneNum[7:]
}

phoneNum := "13812345678"
desensitized := DesensitizePhoneNum(phoneNum)
// desensitized = "138****5678"
  1. 正则表达式

使用正则表达式可以更加灵活地处理各种格式的手机号码,将符合规则的手机号码进行脱敏。

func DesensitizePhoneNumRegex(phoneNum string) string {
    if matched, _ := regexp.MatchString(`^1[3-9]\d{9}$`, phoneNum); matched {
        return phoneNum[:3] + "****" + phoneNum[7:]
    } else {
        return phoneNum
    }
}

phoneNum := "13812345678"
desensitized := DesensitizePhoneNumRegex(phoneNum)
// desensitized = "138****5678"
  1. 使用第三方库

Golang中也有一些第三方库可以用来进行手机号码脱敏,例如go-xmldsig-utils库中的方法。

func DesensitizePhoneNumLib(phoneNum string) string {
    if desensitized, err := xmldsig.Desensitize(phoneNum, "phone"); err == nil {
        return desensitized
    } else {
        return phoneNum
    }
}

phoneNum := "13812345678"
desensitized := DesensitizePhoneNumLib(phoneNum)
// desensitized = "138****5678"

以上是几种常见的手机号码脱敏方式,可以根据实际需求选择合适的方式进行实现。

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
Chris
暂无描述

评论(0)

添加评论