mirror of
https://github.com/VaalaCat/frp-panel.git
synced 2025-10-06 15:56:49 +08:00
40 lines
679 B
Go
40 lines
679 B
Go
package utils
|
|
|
|
const (
|
|
whiteListChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
|
|
)
|
|
|
|
func IsClientIDPermited(clientID string) bool {
|
|
if len(clientID) == 0 {
|
|
return false
|
|
}
|
|
|
|
chrMap := make(map[rune]bool)
|
|
for _, chr := range whiteListChar {
|
|
chrMap[chr] = true
|
|
}
|
|
|
|
for _, chr := range clientID {
|
|
if !chrMap[chr] {
|
|
return false
|
|
}
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func MakeClientIDPermited(clientID string) string {
|
|
input := []rune(clientID)
|
|
output := input
|
|
chrMap := make(map[rune]bool)
|
|
for _, chr := range whiteListChar {
|
|
chrMap[chr] = true
|
|
}
|
|
for idx, chr := range input {
|
|
if !chrMap[chr] {
|
|
output[idx] = '-'
|
|
}
|
|
}
|
|
return string(output)
|
|
}
|