Go 语言实现字符串脱敏功能 - 中文、英文、数字混合字符处理

本文提供一个 Go 语言代码示例,用于实现字符串脱敏功能。该代码可以处理包含中文、英文、数字的字符串,并根据字符串长度进行不同的脱敏方式,确保隐私信息的安全。

脱敏要求:

  • 字符串小于4个字符,最后一位脱敏
  • 字符串等于4位中间2位脱敏
  • 字符串大于4位前后2位不脱敏,中间全脱敏

示例:

  • 输入 'abc' ,输出 'ab*'
  • 输入 '中国ab',输出 '中**b'
  • 输入 '这个是测试地址abc',输出 '这个******bc'

代码实现:

package main

import (
	"fmt"
	"unicode"
)

func main() {
	str := '这个是测试地址abc'
	sensitiveStr := SensitiveDisplay(str)
	fmt.Println(sensitiveStr)
}

func SensitiveDisplay(str string) string {
	runeStr := []rune(str)
	length := len(runeStr)

	if length < 4 {
		runeStr[length-1] = '*'
	} else if length == 4 {
		runeStr[1] = '*'
		runeStr[2] = '*'
	} else {
		for i := 2; i < length-2; i++ {
			if unicode.IsLetter(runeStr[i]) || unicode.IsDigit(runeStr[i]) {
				runeStr[i] = '*'
			}
		}
	}

	return string(runeStr)
}

代码解析:

在上面的代码中,我们使用了unicode包来判断字符是否为字母或数字。根据字符串的长度,分别进行脱敏处理:

  • 如果字符串长度小于4,将最后一个字符脱敏。
  • 如果字符串长度等于4,将中间两个字符脱敏。
  • 如果字符串长度大于4,将前后两个字符保留,中间的字符全部脱敏。

最后,将脱敏后的字符数组转换为字符串并返回。

总结:

本文提供了 Go 语言实现字符串脱敏功能的代码示例,并详细解释了代码实现的原理和逻辑。您可以根据实际需求调整代码,实现更复杂的脱敏功能。

Go语言实现字符串脱敏功能 - 中文、英文、数字混合字符处理

原文地址: https://www.cveoy.top/t/topic/mMFe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录