day6 数组练习4.2
							parent
							
								
									b9bcbcdb7d
								
							
						
					
					
						commit
						a649d294cb
					
				|  | @ -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("参数错误,请输入256,384,512") | ||||
| 			os.Exit(0) | ||||
| 		} | ||||
| 		return nil | ||||
| 	} | ||||
| 	fmt.Printf("%T \n%[1]x \n", sha()) | ||||
| } | ||||
		Loading…
	
		Reference in New Issue