【发布时间】:2020-10-06 17:57:04
【问题描述】:
24 个字符长的字符串有什么特别之处?
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := []string{"24CharacterStringppppppp", "aaaaaaaaaaaaaaaaaaaaaaaa", "25CharacterStringpppppppp", "23CharacterStringpppppp", "qwertyuiop"}
for _, d := range data {
_, err := base64.StdEncoding.DecodeString(d)
if err != nil {
fmt.Printf("Failed to decode base 64 string %v, err: %v \n", d, err.Error())
} else {
fmt.Printf("No Error\n")
}
}
}
我只是偶然发现了这一点,任何 24 个字符长的字符串都不会产生错误,而调用 base64.StdEncoding.DecodeString 任何其他长度的字符串都会产生错误。
我错过了什么?
【问题讨论】:
-
填充。您缺少 [填充] (en.m.wikipedia.org/wiki/Base64#Output_padding)