Python 2.7 python中的文本到十六进制程序有问题
我对python编程相当陌生,但我正在尝试为一个学校项目编写自己的简单加密程序。经过大量的研究,我终于开始学习了,主要是关于不同python命令的语法。无论如何,我的代码的一部分涉及将两行文本(key和msg)转换为十六进制,以便执行我的简单加密算法。虽然一切看起来都是正确的,但我有时会得到十六进制字符串末尾带有大写字母L的输出。(下面的代码示例)任何建议都会很有帮助 例如,假设msg=“hello world”和key=“/abc”Python 2.7 python中的文本到十六进制程序有问题,python-2.7,Python 2.7,我对python编程相当陌生,但我正在尝试为一个学校项目编写自己的简单加密程序。经过大量的研究,我终于开始学习了,主要是关于不同python命令的语法。无论如何,我的代码的一部分涉及将两行文本(key和msg)转换为十六进制,以便执行我的简单加密算法。虽然一切看起来都是正确的,但我有时会得到十六进制字符串末尾带有大写字母L的输出。(下面的代码示例)任何建议都会很有帮助 例如,假设msg=“hello world”和key=“/abc” # define functions def functi
# 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'
消息:你好,世界
键:/abc
加密或解密:加密
回溯(最近一次呼叫最后一次):
文件“python”,第29行,在
函数_hex中的文件“python”,第24行
ValueError:基为16的int()的文本无效:“0x68656c6c6f20776f72L”
Sam,
我能推荐一个更好的方法吗
# define functions
msg = "hello world"
key = "/abc"
def function_hex(s):
return "0x" + "".join("{:02x}".format(ord(c)) for c in s)
# transform input / key to hex
msg_hex = function_hex(msg)
print msg_hex
key_hex = function_hex(key)
print key_hex