首页上一页 1 下一页尾页 1 条记录 1/1页
请问老师,位异或,加密解密,当输入为中文或字符串 密码为数字时无法加密,将 int(pwd) 改为 str huo chr也不行,无法输出加密信息,老师这是为什么?只能加密数字么?
对于位异或运算符只能对数字进行操作,如果需要对中文或字母操作,需要将其转换为对应的ASCII码值,下面的代码实现了这个转换。
def strxor(str1,str2):
orxstr="" # 保存加密结果的字符串
for i in range(0,len(str1)):
## rst=ord(str1[i])^ord(str2[i]) # 加密字符串与要加密的字符串长度相等时
rst=ord(str1[i])^ord(str2[0]) # 采用一个加密字符时
orxstr=orxstr+ chr(rst)
return orxstr
str1 = "坚持"
str2 = "12"
print("加密:",strxor(str1,str2))
str1 = strxor(str1,str2)
print("解密:",strxor(str1,str2))