Python中字符串的加密

url编码

from urllib.parse import quote, unqoute

string = '你好啊'
en_str = 'hello'

# 编码
utf8_code = quote(string) # 默认编码格式是utf-8
print(utf8_code)
# 输出结果:   %E4%BD%A0%E5%A5%BD%E5%95%8A
en_code = quote(en_str)
print(en_code)
# 输出结果: hello  !当传入的字符串不是中文时,这个编码会原文输出
# 设置编码格式
gbk_code = quote(string, encoding='gbk')
print(gbk_code)
# 输出: %E4%BD%A0%E5%A5%BD%E5%95%8A
# 解码
prot_str = unquote(gbk_code, encoding='gbk')
print(prot_str)
# 输出结果: 你好啊                   

Base64编码

import base64

string = '你好啊'
# 编码: 字符串 -> 二进制 -> base64编码
b64_code = base64.b64encode(string.encode())
print(b64_code)
# b'5L2g5aW95ZWK'

# 解码:base64编码 -> 二进制 -> 字符串
port_str = base64.b64decode(b64_code).decode()
print(port_str)
#'你好啊'

字符串转换ascii

string = '你好啊'
# 字符串 --> ascii
ascii_str = list(map(ord, string))
print(ascii_str)
# [20320, 22909, 21834]
# ascii --> 字符串
prot_str = ''.join(map(chr, ascii_str))
print(prot_str)
# 你好啊

md5加密

import hashlib

string = '你好啊'

# 生成一个MD5对象
md5 = hashlib.md5()
# 使用md5对象里的update方法md5转换
md5.update(string.encode('utf-8'))
# 得到加密后的字符串
code = md5.hexdigest()
print(code)
# 124756ef340daf80196b4124686d651c
# md5加密后不可解密

Unicode转中文

name = "王大锤"

# 编码
unicode_name = name.encode("unicode_escape")
utf8_name = name.encode("utf-8")
gbk_name = name.encode("gbk")
gbk2312_name = name.encode("gb2312")

print(unicode_name)
# b'\\u738b\\u5927\\u9524'

print(utf8_name)
# b'\xe7\x8e\x8b\xe5\xa4\xa7\xe9\x94\xa4'

print(gbk_name)
# b'\xcd\xf5\xb4\xf3\xb4\xb8'

print(gbk2312_name)
# b'\xcd\xf5\xb4\xf3\xb4\xb8'

# 解码

print(unicode_name.decode())
# \u738b\u5927\u9524

print(unicode_name.decode("unicode_escape"))
# 王大锤

print(utf8_name.decode())  # 默认utf-8
# 王大锤

print(gbk_name.decode("gbk"))
# 王大锤

转载自Python编程:对字符串加密的5种方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值