python - python中两个十六进制字符串的异或
问题描述
我有两个字符串值,字符和十六进制等效。我如何对两个字符串进行异或运算,以使结果应采用这种格式“\x00\x01\x...”
其中: String1 和 String2 与对应的 ASCII 值相等
String1 = "abcd"
String2 = "\x61\x62\x63\x64"
String3 = String1 ^ String2
输入:
String1 = "ABC"
String2 = "\x72\x61\x74"
我正在使用以下方法来查找 XOR 值
hex(ord('A')) ^ '\x72' = ??
hex(ord('B')) ^ '\x61' = ??
hex(ord('C')) ^ '\x74' = ??
解决方案
我想你在想的是:
String1 = "ABC"
String2 = "\x72\x61\x74"
result = "".join(chr(c1 ^ c2) for c1, c2 in zip(map(ord, String1), map(ord, String2)))
print(result)
# prints "3#7"
或者,如果你想打印十六进制表示,也许:
String1 = "ABC"
String2 = "\x72\x61\x74"
result = "".join("\\x{:02x}".format(c1 ^ c2) for c1, c2 in zip(map(ord, String1), map(ord, String2)))
print(result)
# prints "\x33\x23\x37"
推荐阅读
- output - 在 Qbasic 中运行程序时,有没有办法保存输出?
- javascript - 状态码为 404 的动态路由 nextjs
- python - 如何并行化列绑定的函数?
- flutter - How to convert bytes into image in Flutter?
- express - 我写了一个类似教程中解释的代码,但它不起作用。描述中包含错误
- javascript - React:为什么我不能将数据从一个功能组件传递到另一个功能组件?
- reactjs - 海图 | 网络图 - 有没有办法在单击父节点时展开叶节点?
- python - python中是否有一个随机函数可以在一定范围内获得公平的结果?
- ios - iOS 模拟器在添加 Crashlytics 并强制使应用程序崩溃后卡在启动屏幕上
- macos - 在 virtualbox 上配置 macOS 虚拟机时出现未知配置值“/DmisystemVersion”