python中base64加密解密方法实例分析

本文实例讲述了python中base64加密解密方法。分享给大家供大家参考。具体分析如下:

一、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中存储复杂数据.

在邮件中的用途:

立即学习“Python免费学习笔记(深入)”;

在MIME格式的电子邮件中,base64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本。使用时,在传输编码方式中指定base64。使用的字符包括大小写字母各26个,加上10个数字,和加号“+”,斜杠“/”,一共64个字符,等号“=”用来作为后缀用途。

在URL中的用途:

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充’=’号,并将标准Base64中的“+”和“/”分别改成了“*”和“-”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”在正则表达式中都可能具有特殊含义。

二、python中使用

C:Python27>pythonPython 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import base64>>> str = 'haha'>>> base64.b64encode(str)'aGFoYQ=='>>> base64.b64decode('aGFoYQ==')'haha'

登录后复制

三、其他的方法,这个比较重要

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程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2297745.html

(0)
上一篇 2025年2月28日 03:44:44
下一篇 2025年2月28日 03:45:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 用Python计算三角函数之atan()方法的使用

     atan()方法返回x的反正切值,以弧度表示。Syntax 以下是atan()方法的语法: atan(x) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数。参数     x &#82…

    编程技术 2025年2月28日
    200
  • Python中的random()方法的使用介绍

     random()方法返回一个随机浮点数r,使得0是小于或等于r 以及r小于1。语法 以下是random()方法的语法: random ( ) 登录后复制 注意:此函数是无法直接访问的,所以我们需要导入random模块,然后我们需要使用ra…

    编程技术 2025年2月28日
    200
  • Python计算三角函数之asin()方法的使用

     asin()方法返回x的反正弦,以弧度表示。语法 以下是asin()方法语法: asin(x) 登录后复制 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数。参数     x &#82…

    编程技术 2025年2月28日
    200
  • Python中的choice()方法使用详解

    choice()方法从一个列表,元组或字符串返回一个随机项。语法 以下是choice()方法的语法: choice( seq ) 登录后复制 注意:此函数是无法直接访问的,所以我们需要导入random模块,然后我们需要使用random对象来…

    编程技术 2025年2月28日
    200
  • 简单介绍Python中的round()方法

     round()方法返回 x 的小数点四舍五入到n个数字。语法 以下是round()方法的语法: round( x [, n] ) 登录后复制 参数     x –这是一个数值表达式     n –这也是一个数值表达…

    编程技术 2025年2月28日
    200
  • Python中用于返回绝对值的abs()方法

     方法abs() 返回x的绝对值,-x-零之间的(正极)的距离。语法 以下是abs()方法的语法: abs( x ) 登录后复制 参数     x — 这是一个数值表达式 返回值 此方法返回x的绝对值。例子 下面的例子显示abs…

    编程技术 2025年2月28日
    200
  • Python入门之modf()方法的使用

     modf()方法返回两个项的元组x的整数小数部分。这两个元组具有相同x符号。则返回一个浮点数的整数部分。语法 以下是modf()方法的语法: import mathmath.modf( x ) 登录后复制 注意:此函数是无法直接访问的,所…

    编程技术 2025年2月28日
    200
  • Python中的pass语句使用方法讲解

     python pass语句使用当语句要求不希望任何命令或代码来执行。 pass语句是一个空(null)操作;在执行时没有任何反应。pass也是代码最终会是有用的,但暂时不用写出来(例如,在存根为例):语法 Python pass语句语法如…

    编程技术 2025年2月28日
    200
  • 详解Python中break语句的用法

     在python中的break语句终止当前循环,继续执行下一个语句,就像c语言中的break一样。 break最常见的用途是当一些外部条件被触发,需要从一个循环中断退出。 break语句可以在while和for循环使用。 如果正在使用嵌套循…

    2025年2月28日
    200
  • Python中用于计算对数的log()方法

     log()方法返回x的自然对数,对于x>0。语法 以下是log()方法的语法: import mathmath.log( x ) 登录后复制 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论