0
私はPythonプログラミングにはかなり新しいですが、私は学校プロジェクトのために私自身の簡単な暗号化プログラムを作ろうとしています。私はついに多くの研究の後、主に異なるpythonコマンドの構文について始めた。とにかく、私のコードの1つのセクションは、私の単純な暗号化アルゴリズムを実行するために2行のテキスト(キーとmsg)を16進数に変換することです。すべてが正しいように見えますが、16進文字列の最後に大文字のLを持つ出力が得られることがあります。 (コードの下の例)任意の助言が役に立つでしょう!Pythonのテキストから16進数のプログラムに問題がある
例えばMSG = "Hello World" の、キー=「/ ABCを想定する。
# define functions
def function_hex(string, length):
variable = "0x00"
for i in xrange(0, length):
n = ord(string[i])
variable = hex(256 * int(variable, 16) + n) #line 24
return variable
# transform input/key to hex
msg_hex = function_hex(msg, msg_length) #line 29
print msg_hex
key_hex = function_hex(key, key_length)
print key_hex
出力
message: hello world
key: /abc
encrypt or decrypt: encrypt
Traceback (most recent call last):
File "python", line 29, in <module>
File "python", line 24, in function_hex
ValueError: invalid literal for int() with base 16: '0x68656c6c6f20776f72L'