简易非安全密码加解密问题:编码后无法逆向解码求助
简易加密的正确逆向解码方法
先明确原加密流程的每一步:
- 步骤1:将明文密码转为UTF-8字节流:
"test"→b'test' - 步骤2:将字节流转为十六进制字符串:
b'test'→"74657374" - 步骤3:将十六进制字符串转回UTF-8字节流:
"74657374"→b'74657374' - 步骤4:对字节流做Base64编码:
b'74657374'→b'NzQ2NTczNzQ='
你的解码代码存在两个核心问题:
- 输入的
"b'NzQ2NTczNzQ='"是Python字节对象的字符串形式,不是纯Base64编码内容,需要先提取出真正的Base64字符串"NzQ2NTczNzQ=" - 逆向步骤完全搞反了,原加密的最后两步是「字符串转字节→Base64编码」,逆向应该先Base64解码,再转字符串,最后把十六进制字符串转回原字节流再转明文。
正确的逆向解码代码如下:
import base64 # 提取真正的Base64内容,去掉b''包裹 passwd = "NzQ2NTczNzQ=" # Base64解码,得到十六进制字符串的字节流 passwd = base64.b64decode(passwd) # 将字节流转为十六进制字符串 passwd_str = passwd.decode("UTF-8") # 将十六进制字符串转回原字节流 original_bytes = bytes.fromhex(passwd_str) # 将字节流转为明文密码 original_passwd = original_bytes.decode("UTF-8") print(original_passwd) # 输出:test
如果输入必须保留"b'NzQ2NTczNzQ='"格式,可先处理字符串提取核心内容:
import base64 passwd = "b'NzQ2NTczNzQ='" # 提取Base64部分 passwd = passwd.strip("b'") passwd = base64.b64decode(passwd) passwd_str = passwd.decode("UTF-8") original_bytes = bytes.fromhex(passwd_str) original_passwd = original_bytes.decode("UTF-8") print(original_passwd) # 输出:test
内容的提问来源于stack exchange,提问作者Juli
相关产品推荐
相关产品推荐

