python中各个编码得转换,并且区分python2和python3

1.url编码的相互转换

  • url编码是一种浏览器用来打包表单输入的格式

  • python3中

from urllib import parse
parse.quote('union select null,null,null')  # python3中的用法  
parse.unquote("union%20select%20null%2Cnull%2Cnull")
parse.urlencode({'x':'2333','y':'666'})
  • python2中

from urllib import *
quote('union select null,null,null')  # python2中的用法
unquote("union%20select%20null%2Cnull%2Cnull")
urlencode({'x':'2333','y':'666'})

2.Base64

  • Base64常常用作网页表单和http传输的一些参数,也常用于邮件协议传输用户信息等

import base64
base64.b64encode(b"I love you")  # 加密
base64.b64decode(b'SSBsb3ZlIHlvdQ==')  # 解密
  • base32加密和解密

import base64
base64.b32encode(b'I love you')  # 加密
base64.b32decode(b'JEQGY33WMUQHS33V')  # 解密
  • 说明: 上面的是python3中base64加密解密,python2中不需要加b.如果想要base16,只需要模仿上面即可

3.Hex

  • python3中字符串转十六进制编码

import binascii
binascii.b2a_hex(u'I love you'.encode("utf8"))  # 加密
binascii.a2b_hex(b'49206c6f766520796f75').decode("utf8")  # 解密
  • python2中字符串转16进制

'I love you'.encode('hex')  # 加密
'49206c6f766520796f75'.decode('hex')  # 解密

4.Ascii

  • python2中将字符串装换为Ascii码

map(ord,'I love you')  # 加密
''.join(map(chr,[73, 32, 108, 111, 118, 101, 32, 121, 111, 117])) # 解密
  • python3中字符串转换为Ascii码

a = map(ord,'I love you')  # 加密,由于python3中返回的是生成器对象
list(a)
​
b = map(chr,[73, 32, 108, 111, 118, 101, 32, 121, 111, 117])  # 相同道理
''.join(list(b))

5.Md5

  • md5加密是不可逆的,解密很费劲,一般使用暴力破解

from hashlib import md5
m = md5()
m.update(b'I love you')  # python2去掉b  
m.hexdigest()

6 Uncode和中文的相互转换

  • python3中

a = '我爱你'
a.encode()  # 转换为uncode
b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode()  # 转换为中文
  • python2中

unicode('人生苦短','gbk')  # 编码
print(u'\u4eba\u751f\u82e6\u77ed')  # 解码直接输出
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值