day6 数组练习4.2

master
dugulingping 2022-11-13 00:29:54 +08:00
parent b9bcbcdb7d
commit a649d294cb
1 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,42 @@
package main
import (
"crypto/sha256"
"crypto/sha512"
"flag"
"fmt"
"os"
)
// 练习 4.2 编写一个程序默认情况下打印标准输入的SHA256编码
// 并支持通过命令行flag定制输出SHA384或SHA512哈希算法。
func main() {
var shaflag = flag.Int("sha", 256, "sha选择")
var str = flag.String("s", "default", "需要被加密的字符串")
flag.Parse()
fmt.Println(*shaflag, *str)
sha := func() []byte {
if *shaflag == 256 {
s := sha256.Sum256([]byte(*str))
res := make([]byte, len(s))
copy(res, s[:])
return res
} else if *shaflag == 384 {
s := sha512.Sum384([]byte(*str))
res := make([]byte, len(s))
copy(res, s[:])
return res
} else if *shaflag == 512 {
s := sha512.Sum512([]byte(*str))
res := make([]byte, len(s))
copy(res, s[:])
return res
} else {
fmt.Println("参数错误请输入256384512")
os.Exit(0)
}
return nil
}
fmt.Printf("%T \n%[1]x \n", sha())
}