Go语言实现字符串脱敏功能 - 中文、英文、数字混合字符处理
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 语言实现字符串脱敏功能的代码示例,并详细解释了代码实现的原理和逻辑。您可以根据实际需求调整代码,实现更复杂的脱敏功能。
原文地址: https://www.cveoy.top/t/topic/mMFe 著作权归作者所有。请勿转载和采集!