プログラムに MD5 を実装したい (教育用)。そして、私は理解に問題があります。
ウィキペディアには次のように書かれています。
- メッセージに「1」ビットを追加
- ビット単位のメッセージ長 ≡ 448 (mod 512) まで「0」ビットを追加
- メッセージに length mod (2 pow 64) を追加
そして、私の考えは次のとおりです。
- メッセージのサイズを取得する
- サイズまで >= 64 ==> memcpy 64 バイトをバッファリングして関数を計算する
- size < 64 の場合、memcpy の "size" バイトとパディングを準備します。
そして今、メッセージが127バイトだとしましょう。プログラムは最初の 64 バイトを取得し、計算してから、2 番目の部分を取得します。63 バイト (504 ビット) を使用したため、パディングを追加する必要があります。1 を加算すると、505 ビットになります。
今何?448 (mod 512) までゼロを追加する必要があるので、448+7 ゼロですか? では、再び 2 つのチャンクがあるのでしょうか。または何?
それは私には変に見えるので、私は尋ねます;) おそらくそれは良いですが.. わかりません.
前もってありがとう、M