精华内容
下载资源
问答
  • python base64

    千次阅读 2019-01-09 14:53:29
    import base64 s1 = base64.b64encode(‘abc一二’.encode(‘utf-8’)) s2 = base64.b64decode(s1).decode(‘utf-8’) print(s1) print(s2)

    import base64

    s1 = base64.b64encode(‘abc一二’.encode(‘utf-8’))
    s2 = base64.b64decode(s1).decode(‘utf-8’)

    print(s1)
    print(s2)

    展开全文
  • 主要介绍了Python base64编码解码实例,本文直接给出实例代码,使用也很简单,需要的朋友可以参考下
  • Python Base64转码解码

    万次阅读 2015-07-23 10:43:22
    Python Base64

    Python Base64 提供了好几种方法例如:
    encode,
    decode,

    encodestring,
    decodestring,

    b64encode,
    b64decode,

    standard_b64encode
    standard_b64decode

    urlsafe_b64decode,
    urlsafe_b64encode。

    1. encode, decode
      用来转码和 解码文件的,也可以对StringIO里的数据做编解码

      
      #读取文件进行编码
      
      inputRead = open('/Users/Mr_Chen/Desktop/test.jpeg','rb')
      outputWrit = open('/Users/Mr_Chen/Desktop/testEncode.txt','wb')
      
      #编码文件
      
      base64Test = base64.encode(inputRead,outputWrit)
      
      
      
      #读取文件后进行解码
      
      inputRead = open('/Users/Mr_Chen/Desktop/testEncode.txt','rb')
      outputWrit = open('/Users/Mr_Chen/Desktop/testDecode.jpeg','wb')
      
      #解码文件
      
      base64Test2 = base64.decode(inputRead,outputWrit)
    2. encodestring, decodestring,
      对字符串进行转码,解码

      import base64
      str1 = 'This is Test String'
      
      
      #对字符串进行转码
      
      enTest = base64.encodestring(str1)
      print '转码后:',enTest
      
      
      #对字符串进行解码
      
      deTest = base64.decodestring(enTest)
      print '解码后:',deTest
    3. b64encode,b64decode,
      (base64 模块提供了 b16encode,b16decode,b32encode,b32decode)
      用来编码和解码字符串,并且有一个替换符号字符的功能。当base64编码后的字符除 了英文字母和数字外还有三个字符 + / =,用提替换到 +/= 这些字符

      
      # -*- coding:utf-8 -*-
      
      import  base64
      
      
      
      #读取文件进行base16转码
      
      inputRead = open('/Users/Mr_Chen/Desktop/test.txt','rb')
      base16Test = base64.b16encode(inputRead.read())
      inputRead.close()
      print  'base16 Encode:',base16Test
      
      
      #进行base16解码
      
      base16Test2 = base64.b16decode(base16Test)
      print 'base16 Decode:',base16Test2
      
      
      
      
      #读取文件进行base32转码
      
      inputRead2 = open('/Users/Mr_Chen/Desktop/test.txt','rb')
      base32Test = base64.b32encode(inputRead2.read())
      inputRead2.close()
      print  'base32 Encode:',base32Test
      
      
      #进行base32转码
      
      base32Test2 = base64.b32decode(base32Test)
      print 'base32 Decode:',base32Test2
      
      
      
      
      #读取文件进行base64转码
      
      inputRead3 = open('/Users/Mr_Chen/Desktop/test64.txt','rb')
      base64Test = base64.b64encode(inputRead3.read())
      inputRead3.close()
      print  'base64 Encode:',base64Test
      
      
      #进行base64解码
      
      base64Test2 = base64.b64decode(base64Test)
      print 'base64 Decode:',base64Test2
    4. standard_b64encode,standard_b64decode
      进行标准的base64,同样可以进行string ,文件的转码,解码
      使用效果和encodestring 相同

      
      # -*- coding:utf-8 -*-
      
      
      import base64
      
      text = 'This is Test String!'
      
      
      #进行转码
      
      baseStand = base64.standard_b64encode(text)
      print 'baseStand:',baseStand
      
      
      #进行解码
      
      basee = base64.encodestring(text)
      print 'baseEncodeString:',basee
      
    5. urlsafe_b64decode,urlsafe_b64encode
      主要进行对url 的安全转码

      
      # -*- coding:utf-8 -*-
      
      
      import  base64
      
      
      text = "http://www.baidu.com"
      
      
      #baseurl Encode 转码
      
      baseUrl = base64.urlsafe_b64encode(text)
      print "baseUrlEncode:" ,baseUrl
      
      
      #baseurl Encode 解码
      
      baseUrl2 = base64.urlsafe_b64decode(baseUrl)
      print "baseUrlDecode:" ,baseUrl2
      
    展开全文
  • 主要介绍了python base64库给用户名或密码加密,需要的朋友可以参考下
  • Python base64模块详解

    万次阅读 2014-03-31 17:27:43
    Python base64模块是用来作base64编码解码的。 最简单的加解密实例: import base64 str1 = 'djhui' str2 = base64.b64encode(str1) str3 = base64.b64decode(str2) Python base64模块真正用的上的方法...
    Python base64模块是用来作base64编码解码的。
    

    最简单的加解密实例:

    import base64  
    str1 = 'djhui'
    str2 = base64.b64encode(str1)  
    str3 = base64.b64decode(str2) 

    Python base64模块真正用的上的方法只有8个,分别是encode, decode, encodestring, decodestring, b64encode,b64decode, urlsafe_b64decode,urlsafe_b64encode。他们8个可以两两分为4组,encode,decode一组,专门用来编码和解码文件的,也可以对StringIO里的数据做编解码;encodestring,decodestring一组,专门用来编码和解码字符串; b64encode和b64decode一组,用来编码和解码字符串,并且有一个替换符号字符的功能。这个功能是这样的:因为base64编码后的字符除 了英文字母和数字外还有三个字符 + / =, 其中=只是为了补全编码后的字符数为4的整数,而+和/在一些情况下需要被替换的,b64encode和b64decode正是提供了这样的功能。至于什么情况下+和/需要被替换,最常见的就是对url进行base64编码的时候。urlsafe_b64encode和urlsafe_b64decode 一组,这个就是用来专门对url进行base64编解码的,实际上也是调用的前一组函数。
    Python base64模块加/解密例子:
    #-*- encoding:gb2312 -*-  
    import base64  
    import StringIO  
    a = "this is a test"
    b = base64.encodestring(a) # 对字符串编码  
    print b  
    print base64.decodestring(b) # 对字符串解码  
    c = StringIO.StringIO()  
    c.write(a)  
    d = StringIO.StringIO()  
    e = StringIO.StringIO()  
    c.seek(0)  
    base64.encode(c, d) # 对StringIO内的数据进行编码  
    print d.getvalue()  
    d.seek(0)  
    base64.decode(d, e) # 对StringIO内的数据进行解码  
    print e.getvalue()  
    a = "this is a +test"
    b = base64.urlsafe_b64encode(a) # 进行url的字符串编码  
    print b  
    print base64.urlsafe_b64decode(b) 

    上面的encode函数和decode函数的参数也可以是文件对象:
    f1 = open('aaa.txt', 'r')  
    f2 = open('bbb.txt', 'w')  
    base64.encode(f1, f2)  
    f1.close()  
    f2.close() 




    展开全文
  • Python Base64模块的使用

    千次阅读 2019-07-23 23:32:26
    Python Base64模块的使用 一、base64原理简介 base64可以理解为一种加密算法,用64个常见字符来表示8字节的二进制数字。 64个字符:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' base64...

    Python Base64模块的使用

    一、base64原理简介

    base64可以理解为一种加密算法,用64个常见字符来表示8字节的二进制数字。

    64个字符:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'

    base64转换后的结果只会出现这64个字符,这也是base64名字的由来。(由于不同的应用场景,当+或/有特殊含义时,这两个字符被换成了其他字符,那属于base64的变种)。

    那64个字符怎么表示8字节的二进制数字呢?

    首先,上面的64个字符按顺序分别对应了十进制数字的0到63,可以理解为上面的字符串的索引。

    其次,一个8位二进制数字转换为十进制后表示的是0到255。base64会物理上将3个8位(3*8=24位)的二进制数据连在一起,然后切分成4个6位(4*6=24位)的二进制数据,然后再在这4个6位二进制数据的前面都补两个0,补满8位。这样处理后的二进制数字转换为十进制后表示的是0到63。

    聪明的您应该明白了,这刚好与上面的0到63个字符对应。可以参考下面的图片。

    对于需要加密的内容,base64都会先将其转换为8位的二进制数据,然后进行上面的处理。

    这样,我们用逆向思维,就已经搞清楚base64的原理了。

    另外,base64会在数据的末尾填充等号=。一般来说,对字符串进行base64转换时,字符数量整除3不会补=,余1会补两个==,余2会补一个=。

    二、base64对字符串进行转换

    # coding=utf-8
    import base64
    import string
    import random
    
    
    base_str = string.ascii_letters + string.punctuation
    print(base_str)
    result_str = ''.join(random.choices(base_str, k=20))
    print(result_str)
    result = base64.encodebytes(bytes(result_str.encode('utf-8'))).decode('utf-8')
    print(result)
    result_back = base64.decodebytes(bytes(result.encode('utf-8'))).decode('utf-8')
    print(result_back)

    运行结果:

    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    C{%H/>wHXk:H.Jlf<UBy
    Q3slSC8+d0hYazpILkpsZjxVQnk=
    
    C{%H/>wHXk:H.Jlf<UBy

    上面的代码中,我们从字符中随机选取了20个字符,用encodebytes()方法将字符串转换成了base64字符,然后用decodebytes()方法将base64转换回字符串。

    在Python的base64模块中,encodebytes()与decodebytes()互为逆运算,具体用法如上面代码。

    如果是在Python2中,random没有choices()方法,encodebytes()和decodebytes() 要分别换成 encodestring()和decodestring()。

    # Python2
    result_str = 'UVWXYZ!#$%&()*+,-./'
    print(result_str)
    result = base64.encodestring(bytes(result_str.encode('utf-8'))).decode('utf-8')
    print(result)
    result_back = base64.decodestring(bytes(result.encode('utf-8'))).decode('utf-8')
    print(result_back)

    运行结果:

    UVWXYZ!#$%&()*+,-./
    VVZXWFlaISMkJSYoKSorLC0uLw==
    
    UVWXYZ!#$%&()*+,-./

    三、base64对文件中的字符串进行转换

    base_str = string.ascii_letters + string.punctuation
    print(base_str)
    result_str = ''.join(random.choices(base_str, k=20))
    print(result_str)
    with open('base64.txt', 'wb') as f:
        f.write(bytes(result_str.encode('utf-8')))
    base64.encode(open('base64.txt', 'rb'), open('base64.b64', 'wb'))
    print(open("base64.b64").read())
    
    base64.decode(open('base64.b64', 'rb'), open('base64.new', 'wb'))
    print(open("base64.new").read())

    运行结果:

    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    _iPv}x\},*mkn,IYsqD#
    X2lQdn14XH0sKm1rbixJWXNxRCM=
    
    _iPv}x\},*mkn,IYsqD#

    上面的代码中,我们先随机生成了一串字符,写入base64.txt中,然后用base64.encode()方法读取字符,转换成base64字符后写入base64.b64文件中。然后又用base64.decode()方法读取出base64字符,将base64字符转换回原始字符后写入base64.new文件中。

    在Python的base64模块中,base64.encode()与base64.decode()互为逆运算。

    代码运行后,会在当前目录下生成三个文件,分别是base64.txt, base64.b64, base64.new, 用文本方式打开,base64.txt中的字符串是转换前的字符串, base64.b64中的字符是base64字符串, base64.new中的字符串与base64.txt中一模一样。

    四、base64其他方法的使用

    base_str = string.ascii_letters + string.punctuation
    print(base_str)
    result_str = ''.join(random.choices(base_str, k=20))
    print(result_str)
    result = base64.b64encode(bytes(result_str.encode('utf-8'))).decode('utf-8')
    print(result)
    result_back = base64.b64decode(bytes(result.encode('utf-8'))).decode('utf-8')
    print(result_back)

    运行结果:

    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    $\kFS:TkXHQkkw[GMl,k
    JFxrRlM6VGtYSFFra3dbR01sLGs=
    $\kFS:TkXHQkkw[GMl,k

    代码还是之前的代码,只是把 encodebytes()和decodebytes() 换成了 b64encode()和b64decode(),效果也是一样的,只是encode时少了一个换行符而已。

    除了b64encode()之外,base64模块中还有几对成对的方法,都是从base64延伸出来的。b32encode()和b32decode(), b16encode()和b16decode(),b85encode()和b85decode(), a85encode()和a85decode(),  standard_b64encode()和standard_b64decode(),  

    urlsafe_b64encode()和urlsafe_b64decode()。

    使用方法与上面的完全一样,直接用方法名换掉上面代码中的的方法名就可以运行。只是转换的原理和转换的结果不同,应用的地方也有区别,比如urlsafe_b64encode是为了避免转换时使用斜杠/,因为url中有斜杠/,会造成混淆,所以改了转换时使用的字符。感兴趣的话可以慢慢研究。

     

     

     

    展开全文
  • pythonbase64编码解码模块的使用笔记, 超级详细. 语法规划, 应用举例. 原理说明.
  • python base64加密

    千次阅读 2012-06-17 15:43:15
    python base64加密解密: import base64 import StringIO a = "this is a test" b = base64.encodestring(a) # 对字符串编码 print b print base64.decodestring(b) # 对字符串解码 c = StringIO.StringIO() c....
  • pythonbase64.decodestring方法做base64解码时报错: 复制代码 代码如下: Traceback (most recent call last):  File “/export/www/outofmemory.cn/controllers/user.py”, line 136, in decryptPassword  ...
  • 把内容过程比较重要的内容段备份一次,如下的内容内容是关于python base64加密解密函数的内容。 import base64 import StringIO a = "this is a test" b = base64.encodestring(a) # 对字符串编码 print ...
  • Python base64加密与解密

    千次阅读 2020-05-01 14:55:13
    base64.b64encode(字节类型) 解密 base64.b64decode(加密字符串) import base64 string1 = "hello world" # 需要转成2进制格式才可以转换 result = base64.b64encode(string1.encode()) print('加密:'+str...
  • Python base64与图片之间的转换

    万次阅读 多人点赞 2018-11-21 00:41:47
    图片转base64 #image转base64 import base64 with open("C:\\Users\\wonai\\Desktop\\1.jpg","rb") as f:#转为二进制格式 base64_data = base64.b64encode(f.read())#使用base64进行加密 ...
  • Python Base64转图片

    2020-01-14 11:44:30
    2.一定要使用POST方法,不能使用GET,base64很长,GET放不下 3.转码使用https://www.sojson.com/image2base64.html,一开始使用的站长工具,始终转不出来 4.使用Postman跑 传入pngbase64的值 # -*- coding: utf-8 -*- ...
  • Python base64编码解码

    2020-07-20 16:53:47
    import base64 copyright = '17634231213823859694940628000252303992' def main(): #转成bytes string bytesString = copyright.encode(encoding="utf-8") print(bytesString) #base64 编码 encodestr = ...
  • 上传json格式,base64数据文件。 """ import time import json import base64 import requests def get_base64str(file_path): """获取base64位字符串 bytes字节 -->base64字节 --> base64字符串 """ str...
  • python base64加密解密

    2019-03-12 11:13:04
    # -*- coding: cp936 -*- import base64 src = "明文数据" tgt = base64.b64encode(src.encode('UTF-8')) print (tgt) src = base64.b64decode(tgt).decode('utf-8') print (src)
  • python base64 加密 解密

    千次阅读 2014-04-18 13:19:42
    # -*- coding: UTF-8 -*- ...import base64 if '__main__'==__name__:  key='H4sIAAAAAAAEAOy9B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZ
  • 最近从网上抓到一批图片,但是base64编码的格式,需要转成图片文件,解码的时候一直报错: TypeError: Incorrect padding 网上查了一下,了解了下,大部分都说是因为base64编码时会增加=号处理,解决方法要么是拼...
  • python base64编码的应用

    2015-12-17 10:36:23
    将一个字符串编码然后解码,这个例子来自于https://docs.python.org/2/library/base64.html >>> import base64 >>> encoded = base64.b64encode('data to be encoded') >>> encoded 'ZGF0YSB0byBiZSBlbm
  • json dict python base64

    千次阅读 2017-10-26 19:14:37
    1,将json转换为dict; json_to_dict =json.loads(json) 2, 将dict转换为json字符串 s = json.dumps(data)  ...# 解析64位数据 missing_data = 4-len(data)%4 if missing_data : data +=b
  • import base64 print(base64.b64encode(b'this is a scret!')) print(base64.b64decode(b'dGhpcyBpcyBhIHNjcmV0IQ==').decode('ascii')) 运行结果: b'dGhpcyBpcyBhIHNjcmV0IQ==' this is a scret! Process...
  • Python 自带的base64库,在解码base64字符串的时候抛异常 TypeError: Incorrect padding。在http://stackoverflow.com/questions/2941995/python-ignore-incorrect-padding-error-when-base64-decoding找到解决办法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,139
精华内容 42,055
关键字:

pythonbase64

python 订阅