SHA
SHA
モジュールの使い方は非常に簡単です:
julia> using SHA
julia> bytes2hex(sha256("test"))
"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
執筆時点で実装されているのは SHA-1 と SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) と SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512) です。エクスポートされる関数は Array{UInt8}
, ByteString
, IO
オブジェクトのいずれかを受け取ります。このためファイルのチェックサムの計算が簡単に行えます:
shell> cat /tmp/test.txt
test
julia> using SHA
julia> open("/tmp/test.txt") do f
sha2_256(f)
end
32-element Array{UInt8,1}:
0x9f
0x86
0xd0
0x81
0x88
0x4c
0x7d
0x65
⋮
0x5d
0x6c
0x15
0xb0
0xf0
0x0a
0x08
/tmp/text.txt
の末尾に改行が無いことに注意してください。Julia は julia>
プロンプトの前に改行を自動的に挿入します。
口語で sha2_256
を sha256
と呼ぶことがあるので、利便性のために sha2_xxx()
には shaxxx()
という別名が与えられます。SHA-3 にはそういった口語表現が存在しないので、sha3_xxx()
という完全な名前が必要です。
shaxxx()
が受け取るのは UInt8
型の要素を持つ配列風のオブジェクト (NTuple
/Array
) または AbstractString
です。
執筆時点において SHA3 のコードは最適化されておらず、SHA2 と比べてほぼ一桁遅いことに注意してください。