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加密和解密相关推荐

  1. python中base64加密字典_python中的base64加密和解密

    import base64 import json def row_data(): content = { "buyer_nick": "家有亲亲", &quo ...

  2. Base64加密与解密使用(+拓展:盐值法)

    1.什么是Base64 Base64是一种直接利用64位可打印字符来表示二进制数据的算法,是一种比较常见的加密算法.JDK1.8版本提供了java.util.Base64的工具类,使用Base64提供 ...

  3. java base64加密与解密

    目录 前言 一.base64加密与解密 1. base64有填充的编码与解码 2. base64无填充的编码与解码 二.MIME友好型base64加密与解密 前言 Base64 编码会将字符串编码得到 ...

  4. Windows中EFS加密及解密应用

    Windows中EFS加密及解密应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...

  5. 关于kali中base64的加解密使用

    关于kali中base64的加解密使用 有时候我们在抓包的途中会发现,很多数据都是以类base64的形式存在的,拿到Docoder中解密又是二进制或者其他形式的乱码!有时候说不定是压缩包的二进制呢. ...

  6. php cookie 加密解密,php 使用base64加密、解密cookie的示例

    这篇文章主要为大家详细介绍了php 使用base64加密.解密cookie的示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: ...

  7. Python中密码加密存储

    Python中密码加密存储(Django.Flask等) # 导入密码加密模块 import hashlib # 1.创建一个hash对象 h = hashlib.sha256() # 2.填充要加密 ...

  8. Javascript Base64加密与解密

    Base64加密与解密 Base64.js function Base64() {// private property_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWX ...

  9. shell脚本:base64加密、解密字符串并赋值给变量方法

    几经波折才能够实现使用 base64 加密.解密字符串并赋值给变量.网上绝大多数是使用 echo 管道实现 加密和解密字符串的输出. 代码如下: pwd=$( base64 -d <<&l ...

最新文章

  1. 第一次作业,针对软件工程这门课程提出五个疑问。
  2. 编程语言python特点-常用编程语言介绍及各特点
  3. Flutter中Row中的子控件左右两端对齐
  4. SPringBoot+mybatis 框架搭建例子
  5. IE的2像素偏差问题终于“将要”成为历史了(附js微技巧一则)
  6. Array的用法总结-swift
  7. HTML语言法则主要是什么,prolog语言的三种基本语句是什么?
  8. IntelliJ IDEA 15 设置默认浏览器
  9. mysql 导出dmp文件_PLSQL Developer导入导出表数据结构
  10. asp.net MVC使用 jsQR 扫描二维码
  11. 七、项目沟通管理(输入/工具与技术/输出)
  12. Jsonp跨域原理及实现
  13. emacs go-mode 设置tab宽度
  14. BabyMaker(预测宝宝未来长相软件) v1.5绿色中文破解版
  15. 千峰JAVA逆战班Day32
  16. 操作系统知识点总结(十四)文件保护:文件访问类型和访问控制
  17. 马云重构阿里:或分拆成30家公司 整合3家上市
  18. 台式计算机突然连接不到网络,电脑突然网络感叹号导致不能上网的解决方法
  19. 研究生挂职锻炼-面试问答演练
  20. Swagger2的配置教程

热门文章

  1. 大数据到底是干什么用的?
  2. 【0元学】10节美国外教英语课,还赠绘本,5-10岁孩子别错过!
  3. Problem M 单数变复数
  4. 【独立版】零点城市社交电商V2.1.8.5全开源+VUE前端,新增券码等插件
  5. swf用html怎么写,swfobject.js html中写入一个swf文件
  6. 《端午节.呐喊》 -鲁迅 词语解释 | 经典语录
  7. Moore-Penrose伪逆
  8. 三年级下册分数计算机题,三年级下册数学卷子题
  9. java 视频字幕_javaCV文字识别之2:视频文字识别和视频提取字幕文字字符
  10. Cris 的Python日记(四):Python 数据结构之序列和列表