hex2chars 和 chars2hex 函数
hex2chars & chars2hex functions
我有一个函数 hex2chars:
def hex2chars(data):
result = ''.join(chr(int(data[i:i + 2], 16)) for i in range(0, len(data), 2))
return result
data = '9ede820b31ae92d83be578a7ab8ce906c4ead38943ee73a36e058fac33a0a85861ec46f9cf1ec3d11c0ec8b14aea470c37c1eb87375aca94d9b214e90a0b73f8214d929675768c3d88c95b5618438685ec99cf50ccd846902be6104335482c1ae0136f2dfcfd97e072c38c8d142c9f92f25f3b911bac5beaa51184eb1e6c3169b3b58ec8e094b988648136f6b4bde59def0bce7f03e0cf321f95d067e3319f31dd099513c0d7'
如何创建 chars2hex 函数?
反向转换很容易。你只需要使用 ord
,chr
的反函数,并将结果格式化为 2 位十六进制:
def hex2chars(data):
return ''.join([chr(int(data[i:i + 2], 16)) for i in range(0, len(data), 2)])
def chars2hex(data):
return ''.join(['%02x' % ord(c) for c in data])
data = '9ede820b31ae92d83be578a7ab8ce906c4ead38943ee73a36e058fac33a0a85861ec46f9cf1ec3d11c0ec8b14aea470c37c1eb87375aca94d9b214e90a0b73f8214d929675768c3d88c95b5618438685ec99cf50ccd846902be6104335482c1ae0136f2dfcfd97e072c38c8d142c9f92f25f3b911bac5beaa51184eb1e6c3169b3b58ec8e094b988648136f6b4bde59def0bce7f03e0cf321f95d067e3319f31dd099513c0d7'
s = hex2chars(data)
new_data = chars2hex(s)
print data == new_data
输出
True
请注意,您需要在 Python 3.
中使用不同的方法
但是,您无需自己编写这些函数的代码:您可以使用标准 binascii
模块中的函数编写可在 Python 2 或 Python 上正常工作的代码3.
我有一个函数 hex2chars:
def hex2chars(data):
result = ''.join(chr(int(data[i:i + 2], 16)) for i in range(0, len(data), 2))
return result
data = '9ede820b31ae92d83be578a7ab8ce906c4ead38943ee73a36e058fac33a0a85861ec46f9cf1ec3d11c0ec8b14aea470c37c1eb87375aca94d9b214e90a0b73f8214d929675768c3d88c95b5618438685ec99cf50ccd846902be6104335482c1ae0136f2dfcfd97e072c38c8d142c9f92f25f3b911bac5beaa51184eb1e6c3169b3b58ec8e094b988648136f6b4bde59def0bce7f03e0cf321f95d067e3319f31dd099513c0d7'
如何创建 chars2hex 函数?
反向转换很容易。你只需要使用 ord
,chr
的反函数,并将结果格式化为 2 位十六进制:
def hex2chars(data):
return ''.join([chr(int(data[i:i + 2], 16)) for i in range(0, len(data), 2)])
def chars2hex(data):
return ''.join(['%02x' % ord(c) for c in data])
data = '9ede820b31ae92d83be578a7ab8ce906c4ead38943ee73a36e058fac33a0a85861ec46f9cf1ec3d11c0ec8b14aea470c37c1eb87375aca94d9b214e90a0b73f8214d929675768c3d88c95b5618438685ec99cf50ccd846902be6104335482c1ae0136f2dfcfd97e072c38c8d142c9f92f25f3b911bac5beaa51184eb1e6c3169b3b58ec8e094b988648136f6b4bde59def0bce7f03e0cf321f95d067e3319f31dd099513c0d7'
s = hex2chars(data)
new_data = chars2hex(s)
print data == new_data
输出
True
请注意,您需要在 Python 3.
中使用不同的方法但是,您无需自己编写这些函数的代码:您可以使用标准 binascii
模块中的函数编写可在 Python 2 或 Python 上正常工作的代码3.