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 と同じ結果になる。
Linux で radiko を再生するシェルスクリプト書いた
Linux で radiko を再生するシェルスクリプトを書いた。
先人達がおられたので、車輪の再発明になる。
個人的なシェルスクリプトのお作法に合わせるのと挙動の理解のため、書き直してる。フルスクラッチで書き直して原型がないため、 fork はしてない。
使い方は `play-radiko -h,--help` を見てもらえればわかると思う。
参考:
[1]https://gist.github.com/saiten/875864
[2]http://kyoshiaki.hatenablog.com/entry/2014/05/04/184748