rust で hash 関数を扱ってみた
最近、趣味で rust を書いてる。
rust で sha256 を使って符号化したいケースがあったので調べてみた。
調べていくと rust-crypto [1] なる crate が見つかった。更新頻度も高くてよさそう。
しかし、これドキュメントがない。
ドキュメントがないので、ソースコードを追って読んでみた。 メモがてら記録としてサンプルコードを残しておくことにする。
Cargo.toml
[package] name = "test" version = "0.1.0" authors = ["kizkoh"] [dependencies] rust-crypto = "0.2"
main.rs
extern crate crypto; use crypto::sha2::Sha256; use crypto::digest::Digest; pub fn main() { let input: String = "test".to_string(); let mut sha256 = Sha256::new(); sha256.input_str(&input); println!("input: {}", input); println!("digest: {}", sha256.result_str()); }
$ cargo run [master] Running `target/debug/test` input: test digest: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 $ echo -n "test" | openssl dgst -sha256 (stdin)= 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
ちゃんと openssl と同じ結果になる。