作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个以十六进制表示的密文。我想将密文#1 与密文#2 进行异或。这部分通过 xor_strings 函数可以正常工作。然后,我想将 xor_strings
返回的字符串中的每个字母与空格字符(其 ASCII 代码等于十六进制的 20)进行异或。但这部分不适用于我,当我运行代码时,我收到此错误:
Traceback (most recent call last):
File "hexor.py", line 18, in <module>
xored_with_space=xor_space(xored,binary_space)
File "hexor.py", line 5, in xor_space
return "".join(chr(ord(xored) ^ ord(binary_space)) for x in xored)
File "hexor.py", line 5, in <genexpr>
return "".join(chr(ord(xored) ^ ord(binary_space)) for x in xored)
TypeError: ord() expected a character, but string of length 4 found
这是我正在运行的代码:
def xor_strings(xs, ys):
return "".join(chr(ord(x) ^ ord(y)) for x, y in zip(xs, ys))
def xor_space(xored,binary_space):
return "".join(chr(ord(xored) ^ ord(binary_space)) for x in xored)
a=raw_input("enter first cipher \n")
b=raw_input("enter second cipher \n")
space="20" #hex ASCII value of space
#convert to binary
binary_a = a.decode("hex")
binary_b = b.decode("hex")
binary_space=space.decode("hex")
xored = xor_strings(binary_a, binary_b).encode("hex")
xored_with_space=xor_space(xored,binary_space)
print xored
print xored_with_space
你能帮我解决这个问题吗?
最佳答案
使用您编写的函数来完成此操作...
def xor_space(xored,binary_space):
return xor_strings(xored," "*len(xored))
我还怀疑您可能没有完全理解二进制这个词及其含义
我不确定你认为 a.decode("hex")
会做什么......但我很确定它没有按照你的想法做(尽管也有可能我对此是错的)。 ..
关于python - 如何在Python中将十六进制字符串与空格进行异或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31819721/
我是一名优秀的程序员,十分优秀!