Python字节异或函数 python的异或运算

如何将字符串异或pythonfrom random import seed,randint
str_in=input('请输入一个字符串:')
you_seed=input('请输入密码:')
you_seed=int(you_seed)
#lock
def my_lock(lock_str,lock_seed):
seed(lock_seed)
li_out=[]
for i in lock_str:
li_out.append(chr(ord(i)^randint(0,65535)))
return ''.join(li_out)
my_lock_str=my_lock(str_in,you_seed)
print('原字符串:',str_in)
print('加密字符串:',my_lock_str)
print('还原后字符串:',my_lock(my_lock_str,you_seed))
input()
#python 3.4
python中的异或运算leetcode上有这么一道题:【136. Single Number】
这个题是给出一个非空列表,里面的元素只有一个只出现了一次 , 其余都出现了两次,找出这个只出现了一次的元素 。
这个题目很简单,写了一下直接提交:
翻了一下讨论 , 发现了一个很简单快速的方法:
【Python字节异或函数 python的异或运算】 查了一下异或运算,发现找到唯一值是异或运算在python中的主要用途之一 。其原理是这样的:
输出:70
当a,b都转换为二进制:
输出:0b1010与0b1001100
异或运算是将两个数相同位置(长度不一时要对齐)的数值 , 不同为1时,结果为1,否则为0。比如:(0101) ^ (0011) = 0110 。
这里a ^ b = 0b1000110,即70 。
当两个数相同时,异或运算结果为0.
Python字节 , 每字节的异或解密问题,怎么解决1.先将int转为hex字符串,去掉'0x' , 然后对位数判断,比如1 -- 0x01(而不是0x1), 22 -- 0x16;
2.直接将字符串转为bytearray,比如'0x123456' -- 0x12\0x34\0x56(忽略转义表示,此处只是讨论使用方法);
3.直接将bytearray转为bytes
def hexPos(num):
val = hex(int(num))[2:]
if len(val) % 2 != 0:
val = '0' + val
y = bytearray.fromhex(val)
if len(y) != 4:
x = bytearray(4 - len(y))
return bytes(x + y)
Python字节异或函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python的异或运算、Python字节异或函数的信息别忘了在本站进行查找喔 。

    推荐阅读