ScalaでSHA256を実装する
この記事はあくあたん工房アドベントカレンダー12月22日の記事です
はじめに
趣味のプログラミングの一環としてSHA256を実装したくなることは誰にでもあると思います.僕もその一人で,SHA256を実装すべく仕様書に目を通していたところ,Scalaで実装したら楽しいんじゃないかと思い,実装してみました.本当はアドベントカレンダーで投稿する本来の日までに完成させようと思っていたのですが,アドベントカレンダーの最終日である12月25日が迫るなか,どうしてもバグが取れないので未完成ですが投稿してしまうことにします.バグが取れ次第更新する予定です.バグは取れました.
実装
早速ですがコードを貼ります.
仕様書を読むとどうやら大雑把な流れは初期値6A09E667 BB67AE85 3C6EF372
A54FF53A 510E527F 9B05688C 1F83D9AB 5BE0CD19
に対して入力を用いてfold
を行うものだったのでfoldLeft
を用いた実装にしてみました.またその内部の二つのイテレーションもfoldLeft
を使って実装しました.全体としてだいぶスッキリした印象です.
おわりに
ものすごく雑な記事となってしまいましたが,大学の課題で思っていたよりも時間が取れなかったので以上にしたいと思います.最後までお読みいただきありがとうございました.