python中base64加密和解密

您所在的位置:网站首页 python加密函数解密 python中base64加密和解密

python中base64加密和解密

2023-09-14 02:42| 来源: 网络整理| 查看: 265

base64加密和解密有点头疼,必须要记录下来,以后忘了也能再来复习下 当然啦,能一直记住是最好的…加油吧,少年(其实已经好老了)

操作环境

win10,python3

base的原理

这个还是别人讲的好,详情请看:Base64编码原理与应用

简单小案例

其实它的原理不是很难,以下是几个小案例

import base64 str='admin' str=str.encode('utf-8') #加密 bs64=base64.b64encode(str) print(bs) #结果是 b'YWRtaW4=' bs32=base64.b32encode(str) print(bs32) #结果是 b'MFSG22LO' bs16=base64.b16encode(str) print(bs16) #结果是 b'61646D696E' #解密 debs64=base64.b64decode(bs64) print(debs64) #结果是 b'admin' debs32=base64.b32decode(bs32) print(debs32) #结果是 b'admin' debs16=base64.b16decode(bs16) print(debs16) #结果是 b'admin' b64,b32,b16的混合加密和解密

请看代码:

import base64 import random #flag="flag{**some seclet**}" #base64加密 def base64_encode(flag): #定义编码方式 basecode={ '16':lambda x:base64.b16encode(x), '32':lambda x:base64.b32encode(x), '64':lambda x:base64.b64encode(x) } #将‘str’类型转换成‘bytes’类型 pp=flag.encode('utf-8') #进行循环编码 for i in range(10): order=random.choice(['16','32','64']) pp=basecode[order](pp) #将‘bytes’类型转换成‘str’类型 pp=pp.decode('utf-8') #写入文件中 with open("ciphertext.txt",'w') as fp: fp.write(pp) return '###加密成功###' #base64解密 def base64_decode(ciphertext): result='' with open(ciphertext+".txt",'r') as fp: ciphertext=fp.read() ciphertext=ciphertext.encode('utf-8') #定义解密方式 basedecode={ '16':lambda x:base64.b16decode(x), '32':lambda x:base64.b32decode(x), '64':lambda x:base64.b64decode(x) } for j in range(10): try: ciphertext=basedecode['16'](ciphertext) except: try: ciphertext=basedecode['32'](ciphertext) except: ciphertext=basedecode['64'](ciphertext) result=ciphertext.decode('utf-8') print(result) return '###解密成功###' def main(): functions=input('输入A加密,输入B解密,其它关闭>>>') if functions=='A': plaintext=input('请输入加密文字明文>>>') print(base64_encode(plaintext)) if functions=='B': ciphertext = input('请输入密文文件名>>>') print(base64_decode(ciphertext)) if __name__=='__main__': main() 结果展示 runfile('C:/Users/lenovo/Documents/我的python笔记/作业4.py', wdir='C:/Users/lenovo/Documents/我的python笔记') 输入A加密,输入B解密,其它关闭>>>>A 请输入加密文字明文>>>abcdefg ###加密成功### runfile('C:/Users/lenovo/Documents/我的python笔记/作业4.py', wdir='C:/Users/lenovo/Documents/我的python笔记') 输入A加密,输入B解密,其它关闭>>>>B 请输入密文文件名>>>ciphertext abcdefg ###解密成功### 注意

在解码的时候,由于加密的时候是随机加密的,随意该怎么用正确的解码方式去解码就成了关键。 这里找了"try…except…"的语句去实现,一个一个方式去试,最终试出明文。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3