開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第4章(コンポジット型)、4.1(配列)、練習問題4.2の解答を求めてみる。
コード
package main import ( "crypto/sha256" "crypto/sha512" "flag" "fmt" "io/ioutil" "os" ) var intPtr = flag.Int("s", 256, "sha xxx") func main() { flag.Parse() data, err := ioutil.ReadAll(os.Stdin) if err != nil { fmt.Fprint(os.Stderr, err) os.Exit(1) } switch *intPtr { case 384: fmt.Printf("%x\n", sha512.Sum384(data)) case 512: fmt.Printf("%x\n", sha512.Sum512(data)) default: fmt.Printf("%x\n", sha256.Sum256(data)) } }
入出力結果(cmd(コマンドプロンプト)、Terminal)
C:\Users\...>type input2.txt Go go Golang golang C:\Users\...>go run sample2.go < input2.txt 3efea55c410d86fc03d18cdad7f9e6c8f8cc21061a45a8c0d435c6696117d549 C:\Users\...>go run sample2.go -s 256 < input2.txt 3efea55c410d86fc03d18cdad7f9e6c8f8cc21061a45a8c0d435c6696117d549 C:\Users\...>go run sample2.go -s 384 < input2.txt f98389432090a11bcde2f5ba3eb0d107dc34e401dfc0600ab83c0ffe1a16713701eaf57f5c7ab8dcb725a31e0a0f5747 C:\Users\...>go run sample2.go -s 512 < input2.txt baeae9220a87c0930942878874b36613087a8058aa9dca95ddc5ebd03b58a99d3dd83cdbe86c5cdf1ffa1363b4c047a00ce55dfa098920967c88d733e1f3d6a4 C:\Users\...>go run sample2.go -s 1024 < input2.txt 3efea55c410d86fc03d18cdad7f9e6c8f8cc21061a45a8c0d435c6696117d549 C:\Users\...>
0 コメント:
コメントを投稿