package main
import (
"bytes"
"encoding/base64"
"fmt"
"io"
"log"
"os"
)
func b(name string) {
f, err := os.Open(name)
if err != nil {
log.Fatal(err)
}
defer f.Close()
buf := new(bytes.Buffer)
binval := base64.NewEncoder(base64.StdEncoding, buf)
if _, err := io.Copy(binval, f); err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", buf.String()[buf.Len()-5:])
}
func main() {
b("soccer.jpg")
b("soccer2.jpg")
}
足球.jpg 足球 2.jpg
输出:
bodqhrohro@debian:/tmp$ go run base64.go
nuNf/
nuNf/
第一个文件与第二个文件相同,只是删除了最后一个字节。它们产生相同的 base64 字符串。怎么了?
我用go1.15.9和go1.18.3体验过。
炎炎设计
相关分类