0

ここで言及されている MD5 アルゴリズムを再作成するために、Python で「メッセージに「1」ビットを追加する」方法を探しています。

これは私が行ったことですが、問題はmsg実際には文字列であることです:

msg.append(0x01)         
while len(msg)%56!=0: 
     msg.append(0x00)      

私は何をすべきか?

4

1 に答える 1

0

chrバイト値を文字列に変換するために使用します。次に、それらをに追加できますmsg

msg += chr(0x01 << 8)
while len(msg)%56 != 0:
    msg += chr(0x00)

Python 2.7では、ASCII文字列の各文字は8ビットの大きさです。したがって、この方法では、毎回実際に「1ビット」を追加するわけではありません。そのため、1つの引数を8回左シフトする必要があります。0b00000001それ以外の場合は、目的のの代わりに文字列に追加することになります0b10000000

于 2013-03-21T12:19:13.313 に答える