2017-02-05 14 views
-2

の不完全数でa2b_hqx(b2a_hqx(データ))に失敗し、これが失敗する:これは、Python 2と3の両方で発生binasciiは、Python binasciiモジュールを使用してバイト

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
binascii.Incomplete: String has incomplete number of bytes 

import binascii 
b = binascii.b2a_hqx('data') 
a = binascii.a2b_hqx(b) 

を(3で、代わりにb'data 'を使用してください)。それはb2a_base64とa2b_base64でうまく動作しますが。

私は間違っていますか?

+0

ええ、私はそれを見ましたが、3で割り切れるように文字が追加された場合、どのようにデータを元に戻しますか?つまり、文字が追加されたかどうかを「デコード」するコードはどのようになりますか?この問題により、hqxアルゴリズムは完全に役に立たなくなります。そして、この意味で、人々は投票の前に表面的なものを少しだけ考えてみるべきです。 –

答えて

1

チェックこれを:

b = binascii.b2a_hqx('dataa') 
a = binascii.a2b_hqx(b) 

プログラムがエラーで終了し 不完全= binascii.a2b_hqx(B B = binascii.b2a_hqx( 'dataaa') (文字列はバイトの不完全数を有します) )

https://docs.python.org/2/library/binascii.html?highlight=b2a_hqx#binascii.b2a_hqx

binascii.b2a_hqx(data) 

hexbin4バイナリからASCIIへの変換を実行し、結果の文字列を返します。引数はすでにRLEでコード化されていて、長さは3で割り切れる必要があります(おそらく最後のフラグメントを除く)。

関連する問題