ここで言及されている MD5 アルゴリズムを再作成するために、Python で「メッセージに「1」ビットを追加する」方法を探しています。
これは私が行ったことですが、問題はmsg
実際には文字列であることです:
msg.append(0x01)
while len(msg)%56!=0:
msg.append(0x00)
私は何をすべきか?
ここで言及されている MD5 アルゴリズムを再作成するために、Python で「メッセージに「1」ビットを追加する」方法を探しています。
これは私が行ったことですが、問題はmsg
実際には文字列であることです:
msg.append(0x01)
while len(msg)%56!=0:
msg.append(0x00)
私は何をすべきか?
chr
バイト値を文字列に変換するために使用します。次に、それらをに追加できますmsg
。
msg += chr(0x01 << 8)
while len(msg)%56 != 0:
msg += chr(0x00)
Python 2.7では、ASCII文字列の各文字は8ビットの大きさです。したがって、この方法では、毎回実際に「1ビット」を追加するわけではありません。そのため、1つの引数を8回左シフトする必要があります。0b00000001
それ以外の場合は、目的のの代わりに文字列に追加することになります0b10000000
。