python - 如何在python3中否定字节
问题描述
我试图解决有人发布的这个加密谜题,我试图在 python3 中自动化它,但遇到了一些麻烦。这让我发疯,我不知道该怎么做。
它涉及进行 base64 解码,它给出了字节类型。
我想遍历这个字节集合,并对每个字节进行按位取反。也就是说,例如10010001(145)应该变成01101110(110)。~ 运算符给了我两个恭维,但产生了负整数。我想使用无符号字节。
我怎样才能在 python 3 中做到这一点?
我想做的psudocode:
[ bitwise_negate(x) for x in my_byte_array ]
解决方案
您可以使用 pythonbase64
模块首先将字符串解码为其相应的字节,然后您可以将每个字节与 255 (11111111) 进行异或运算以获取生成的 ascii 点码并用于chr
获取实际字符
import base64
string = 'l4uLj8XQ0J2Wi9GThtDMzJGUmbKluw=='
decoded = base64.decodebytes(bytes(string, encoding='utf-8'))
print("".join([chr(item ^ 255) for item in decoded]))
推荐阅读
- javascript - 在中间件中调度 redux 操作会导致意外行为
- node.js - Express-session - 会话的并发修改
- android - 三星galaxy s7上的Android studio Camera Access,图像模糊
- javascript - 带有剃须刀页面的动态 javascript
- matlab - MATLAB水平的sobel滤波器
- objective-c - 如何将 Float64 分配给 NSInteger 变量?
- c# - Discord.net GetMessagesAsync() 返回 null
- javascript - 如何在 javascript 中使用 textarea 打乱数字
- javascript - 语法错误:执行 TS 应用程序时出现意外的令牌 {
- math - 资质,为什么400年有0个奇数年?