github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/secret/token.go (about) 1 package secret 2 3 import ( 4 "bytes" 5 "fmt" 6 "hash/crc32" 7 ) 8 9 const minTokenLength = 16 10 11 func Token(token string) string { 12 var mask bytes.Buffer 13 if len(token) > minTokenLength { 14 mask.WriteString(token[:4]) 15 mask.WriteString("****") 16 mask.WriteString(token[len(token)-4:]) 17 } else { 18 mask.WriteString("****") 19 } 20 mask.WriteString(fmt.Sprintf("(CRC-32c: %08X)", crc32.Checksum([]byte(token), crc32.IEEETable))) 21 22 return mask.String() 23 }