開発環境
- 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 コメント:
コメントを投稿