python中base64加密和解密
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…"的语句去实现,一个一个方式去试,最终试出明文。
python中base64加密和解密相关推荐
- python中base64加密字典_python中的base64加密和解密
import base64 import json def row_data(): content = { "buyer_nick": "家有亲亲", &quo ...
- Base64加密与解密使用(+拓展:盐值法)
1.什么是Base64 Base64是一种直接利用64位可打印字符来表示二进制数据的算法,是一种比较常见的加密算法.JDK1.8版本提供了java.util.Base64的工具类,使用Base64提供 ...
- java base64加密与解密
目录 前言 一.base64加密与解密 1. base64有填充的编码与解码 2. base64无填充的编码与解码 二.MIME友好型base64加密与解密 前言 Base64 编码会将字符串编码得到 ...
- Windows中EFS加密及解密应用
Windows中EFS加密及解密应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...
- 关于kali中base64的加解密使用
关于kali中base64的加解密使用 有时候我们在抓包的途中会发现,很多数据都是以类base64的形式存在的,拿到Docoder中解密又是二进制或者其他形式的乱码!有时候说不定是压缩包的二进制呢. ...
- php cookie 加密解密,php 使用base64加密、解密cookie的示例
这篇文章主要为大家详细介绍了php 使用base64加密.解密cookie的示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: ...
- Python中密码加密存储
Python中密码加密存储(Django.Flask等) # 导入密码加密模块 import hashlib # 1.创建一个hash对象 h = hashlib.sha256() # 2.填充要加密 ...
- Javascript Base64加密与解密
Base64加密与解密 Base64.js function Base64() {// private property_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWX ...
- shell脚本:base64加密、解密字符串并赋值给变量方法
几经波折才能够实现使用 base64 加密.解密字符串并赋值给变量.网上绝大多数是使用 echo 管道实现 加密和解密字符串的输出. 代码如下: pwd=$( base64 -d <<&l ...
最新文章
- 第一次作业,针对软件工程这门课程提出五个疑问。
- 编程语言python特点-常用编程语言介绍及各特点
- Flutter中Row中的子控件左右两端对齐
- SPringBoot+mybatis 框架搭建例子
- IE的2像素偏差问题终于“将要”成为历史了(附js微技巧一则)
- Array的用法总结-swift
- HTML语言法则主要是什么,prolog语言的三种基本语句是什么?
- IntelliJ IDEA 15 设置默认浏览器
- mysql 导出dmp文件_PLSQL Developer导入导出表数据结构
- asp.net MVC使用 jsQR 扫描二维码
- 七、项目沟通管理(输入/工具与技术/输出)
- Jsonp跨域原理及实现
- emacs go-mode 设置tab宽度
- BabyMaker(预测宝宝未来长相软件) v1.5绿色中文破解版
- 千峰JAVA逆战班Day32
- 操作系统知识点总结(十四)文件保护:文件访问类型和访问控制
- 马云重构阿里:或分拆成30家公司 整合3家上市
- 台式计算机突然连接不到网络,电脑突然网络感叹号导致不能上网的解决方法
- 研究生挂职锻炼-面试问答演练
- Swagger2的配置教程
热门文章
- 大数据到底是干什么用的?
- 【0元学】10节美国外教英语课,还赠绘本,5-10岁孩子别错过!
- Problem M 单数变复数
- 【独立版】零点城市社交电商V2.1.8.5全开源+VUE前端,新增券码等插件
- swf用html怎么写,swfobject.js html中写入一个swf文件
- 《端午节.呐喊》 -鲁迅 词语解释 | 经典语录
- Moore-Penrose伪逆
- 三年级下册分数计算机题,三年级下册数学卷子题
- java 视频字幕_javaCV文字识别之2:视频文字识别和视频提取字幕文字字符
- Cris 的Python日记(四):Python 数据结构之序列和列表