-
2022-02-22 13:52:35
前言
最近做题一直遇到一些base64代码解码,便想着自己写一个可以进行加密解密的脚本,自己使用
脚本代码
脚本如下:
import base64 def b64encode():#定义一个加密函数 a = input("base64加密:")#input()函数接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。 encode = base64.b64encode(a.encode('utf-8'))#因为3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,所以必须先转码 print(("**********encryption complete**********\n:"),str(encode,'utf-8'))#将byte转换回去就好了,如果不转的化,输出结果会被字符串b包围 return "****************************************" def b64decode():#定义一个解码函数 b = input("base64解码:") decode = base64.b64decode(b) print(("**********Decoding complete**********\n:"),str(decode,'utf-8')) return "****************************************" a = 0 while a == 0:#设置第一个循环 print("<<< 选择 >>>\n--加密--\n--解码--\n--退出--") user = input(":") while (user !='加密' and user !='解码' and user != "退出" ):#设置第二个循环,设置循环条件如果不等于这些条件 print("输入错误!请重新输入:") #就一直会在 print("输入错误!请重新输入:")循环 user=input(":") if user == '加密':#如果输入的字符等于加密就执行下一个条件,进行加密 c = b64encode() print(c) if user == '解码':#如果输入的字符等于解码就执行下一个条件,进行解码 b = b64decode() print(b) if user == '退出':#输入退出则跳出循环,退出程序 break print("已退出")
更多相关内容 -
python3.x实现base64加密和解密
2021-01-01 05:11:17用python3.x实现base64加密和解密,供大家参考,具体内容如下 加密 base64_encrypt.py #!/usr/bin/python3 #encoding:utf-8 import base64 var = 1 while var==1: str_encrypt=input(输入要加密的字符串:\n); ... -
Python简单实现Base64编码和解码的方法
2020-12-25 15:06:52本文实例讲述了Python简单实现Base64编码和解码的方法。分享给大家供大家参考,具体如下: Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位... -
Python实现base64编码的图片保存到本地功能示例
2020-09-20 08:42:49主要介绍了Python实现base64编码的图片保存到本地功能,涉及Python针对base64编码解码与图形文件输出保存相关操作技巧,需要的朋友可以参考下 -
python中base64加密解密方法实例分析
2020-12-25 14:40:16本文实例讲述了python中base64加密解密方法。分享给大家供大家参考。具体分析如下: 一、base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应... -
基于Python实现 图片的Base64加密与解密
2021-10-05 11:39:51# 看到iBV 99%的情况下是png经过base64加密 太强了 with open("E://桌面/校园帮.png", 'rb') as f: content = f.read() entxt = base64.b64encode(content) with open("E://桌面/图11.txt", 'w') as看到以iBV开头的乱码99.99%的情况下是图片的Baes64加密,例如
图片转Base64
import base64 # 对图片进行二进制B64加密 # 看到iBV 99%的情况下是png经过base64加密 太强了 with open("E://桌面/校园帮.png", 'rb') as f: content = f.read() entxt = base64.b64encode(content) with open("E://桌面/图11.txt", 'w') as ff: ff.write(str(entxt)) # 必须强制转成字符串才能写入
写入的加密数据可能开头有b’或者data:image/png;base64, 在对其进行解密转换图片的时候一定要删去这一部分
Base64转图片
# 解密然后转化成图片 with open("E://桌面/图11.txt", 'r') as f: txt = f.read() # 字符串 imagedata = base64.b64decode(txt) with open("E://桌面/图1.jpg", 'wb') as png: png.write(imagedata)
效果如图:
-
Python常用base64 md5 aes des crc32加密解密方法汇总
2021-01-19 23:31:09Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,... -
python base64库给用户名或密码加密的流程
2020-09-18 04:26:44主要介绍了python base64库给用户名或密码加密,需要的朋友可以参考下 -
Python中base64加密解密方法详解及版本间差异
2020-05-09 19:26:34今天来看一下base64加密函数的使用,以及Python2与Python3中的不同。 一、base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。...今天来看一下base64加密函数的使用,以及Python2与Python3中的不同。
一、base64
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。编码后的数据比原始数据略长,为原来的4/3。
Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据(或不可打印的字符串)。包括MIME的email,email via MIME, 在XML中存储复杂数据.
在邮件中的用途:
在MIME格式的电子邮件中,base64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本。使用时,在传输编码方式中指定base64。使用的字符包括大小写字母各26个,加上10个数字,和加号“+”,斜杠“/”,一共64个字符,等号“=”用来作为后缀用途。
在URL中的用途:
标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充’='号,并将标准Base64中的“+”和“/”分别改成了“*”和“-”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”在正则表达式中都可能具有特殊含义。
二、python中使用
Python2 和 Python3 在base64处理上是不同的,Python3下传入的参数不能是Unicode字符串,需要进行转换
Python2:
Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import base64 >>> str = 'pythontab.com' >>> base64.b64encode(str) 'cHl0aG9udGFiLmNvbQ==' >>> base64.b64decode('cHl0aG9udGFiLmNvbQ==') 'pythontab.com' >>>
Python3:
Python 3.5.2 (default, Aug 24 2016, 16:48:29) [GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import base64 >>> str = 'pythontab.com' >>> bytesStr = str.encode(encoding='utf-8') >>> bytesStr.decode() 'pythontab.com' >>> b64str = base64.b64encode(bytesStr) >>> b64str b'cHl0aG9udGFiLmNvbQ==' >>> base64.b64decode(b64str) b'pythontab.com' >>>
注意:
首先要搞清楚,字符串在Python内部的表示是unicode编码.
因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,
如str1.decode(‘gb2312’),表示将gb2312编码的字符串转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,
如str2.encode(‘gb2312’),表示将unicode编码的字符串转换成gb2312编码。
三、其他的方法
base64.b64encode(s[, altchars])
base64.b64decode(s[, altchars])
altchars为可选的参数,用来替换+和/的一个两个长度的字符串。
base64.urlsafe_b64encode(s)
base64.urlsafe_b64decode(s)
此方法中用-代替了+,用_代替了/ ,这样可以保证编码后的字符串放在url里可以正常访问
base64.b32encode(s)
base64.b32decode(s[, casefold[, map01]])
base64.b16encode(s)
base64.b16decode(s[, casefold])
-
python 对数据进行base64加密、解密
2021-07-26 15:57:02import base64 # 明文字符串 origin_str = '明天晚上8点动手!' # -----加密----- # 实例化base64对象 bytes(二进制)类型 obj = base64.b64encode(origin_str.encode()) # decode()转化为str类型 plaintext_...import base64 # 明文字符串 origin_str = '明天晚上8点动手!' # -----加密----- # 实例化base64对象 bytes(二进制)类型 obj = base64.b64encode(origin_str.encode()) # decode()转化为str类型 plaintext_result =obj.decode() print('加密后: {}' .format(plaintext_result)) # -----解密----- #bytes类型 ciphertext_str = base64.b64decode(plaintext_result) # decode()转化为str类型 result = ciphertext_str.decode() print('解密后: {}' .format(result))
-
用python3.x实现base64加密和解密
2018-05-29 18:09:14用python3.x实现base64加密和解密 加密 base64_encrypt.py #!/usr/bin/python3 #encoding:utf-8 import base64 var = 1 while var==1: str_encrypt=input("输入要加密的字符串:\n"); base... -
python实现base64加密/解密界面化小工具
2016-01-08 17:24:37原本是想写一个多功能的格式转换工具来着,其他部分还没想好怎么写 所以就先写一个base64的工具好了 -
python3 base64加密
2018-12-25 09:43:10python3 base64加密第一种写法(通过字符串提取) #方法一 import base64 a = 'testzifuchuan' jm = base64.b64encode(a.encode('utf-8')) b = str(jm) print(b[2:-1]) 输出结果 对于python3,你如果写成了... -
python base64数据加密
2019-08-05 14:57:36base64数据加密,是一种可逆的编码格式,生成的编码是ascii格式的数据,通过encode加密,decode解密。原理: 1、将所有字符转化为ASCII码。 2、将ASCII码转化为8位二进制 。 3、将二进制3个归成一组(不足3个在后边补... -
python之base64加解密
2021-05-02 01:19:571、什么是Base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为...2、python中的base64模块 Base64模块真正用得上的方法只有8个,分别是: encode, decode为一组, 专门用 -
python中base64加密解密方法的代码
2020-12-15 16:20:08学习闲暇时间,把写代码过程中比较常用的内容收藏起来,下面的代码是关于python中base64加密解密方法的代码,应该是对码农有用。C:Python27>pythonPython 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64... -
python3.7实现base64加密和解密
2021-03-15 15:54:23import base64 yh='你好,python!' bm=base64.b64encode(yh.encode('utf8')) print(bm) # 结果:5L2g5aW977yMcHl0aG9uIQ== lx='5L2g5aW977yMcHl0aG9uIQ==' # 解码 aa=base64.b64decode(lx).decode('utf-8') bb=... -
python中base64加密和解密
2018-10-20 19:56:42base64加密和解密有点头疼,必须要记录下来,以后忘了也能再来复习下 当然啦,能一直记住是最好的…加油吧,少年(其实已经好老了) 操作环境 win10,python3 base的原理 这个还是别人讲的好,详情请看:Base64编码原理与... -
Python使用base64加密
2020-08-27 16:56:01Python使用base64加密。 -
python实现base64加密注册写入本地文件,登录校验
2018-10-12 22:08:43import base64 # 用户登录校验, 读取密码文件进行比对 def login(username, password): f = open("db", 'r') # 读文件 list1 = [] list2 = [] for line in f: line = line.strip(... -
Python base64加密解密
2019-05-13 11:41:11# base64加密 str_a = 'Python base64模块' b = base64.b64encode(str_a.encode()) # 传入的是字节,需要encode()编码,不然报错TypeError: a bytes-like object is required, not 'str' print(b,ty... -
Python实现base64编码解码
2021-02-03 23:06:52Python实现base64编码解码通过编程了解base64编码解码过程 (纯属无聊之举,且不支持汉字)a = input("输入(1.base64加密/2.base64解密):")base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz... -
python实现AES加密和解密
2020-12-31 17:13:49AES只是个基本算法,实现AES有几种模式,主要有ECB、CBC、CFB和OFB这几种(其实还有个CTR): 1.ECB模式(电子密码本模式:Electronic codebook) ECB是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位... -
Python之base64加密解密
2019-04-17 17:50:54import base64 msg = 'good night 李明' msg = msg.encode('utf-8') # 加密 bs64 = base64.b64encode(msg) print(bs64) # 结果是 b'Z29vZCBuaWdodA==' # 解密 debs64 = base64.b64decode(bs64) debs64 = debs64.... -
Python base64加密与解密
2020-05-01 14:55:13base64.b64decode(加密字符串) import base64 string1 = "hello world" # 需要转成2进制格式才可以转换 result = base64.b64encode(string1.encode()) print('加密:'+str(result)) # 再把加密后的...