Python字节异或函数 python异或

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中的异或运算

leetcode上有这么一道题:【136. Single Number】

这个题是给出一个非空列表,里面的元素只有一个只出现了一次,其余都出现了两次,找出这个只出现了一次的元素。

这个题目很简单,写了一下直接提交:

翻了一下讨论,发现了一个很简单快速的方法:

查了一下异或运算,发现找到唯一值是异或运算在python中的主要用途之一。其原理是这样的:

输出:70

当a,b都转换为二进制:

输出:0b1010与0b1001100

异或运算是将两个数相同位置(长度不一时要对齐)的数值,不同为1时,结果为1,否则为0 。比如:(0101) ^ (0011) = 0110。

这里a ^ b = 0b1000110,即70。

当两个数相同时,异或运算结果为0.

如何将字符串异或python

from 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字节异或函数 python异或
标题来源:http://scyanting.com/article/dopepjc.html