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

简介: Python编程:对字符串加密的5种方式

1. url编码

from urllib.parse import quote, unquote
name = "王大锤"
# 编码
utf8_name = quote(name)  # utf-8
print(utf8_name)
# %E7%8E%8B%E5%A4%A7%E9%94%A4   长度是 9
gbk_name = quote(name, encoding="gbk")
print(gbk_name)
# %CD%F5%B4%F3%B4%B8    长度是 6
# 解码
print(unquote(utf8_name))
print(unquote(gbk_name, encoding="gbk"))
# 王大锤

2. Base64编码

可参考:base64编码原理以及python中的base64模块
# base64编码是将二进制字节流编码为可打印的64个字符
# 以6位分割 bit位都是0,base64约定以‘=’代替
# z -> b'eg=='
import base64
name = "王大锤"
# 编码: 字符串 -> 二进制 -> base64编码
b64_name = base64.b64encode(name.encode())
print(b64_name)
# b'546L5aSn6ZSk'
# 解码:base64编码 -> 二进制 -> 字符串
print(base64.b64decode(b64_name).decode())
# 王大锤

3. 字符串转换ascii

name = "王大锤"
# 编码
ascii_name = list(map(ord, name))
print(ascii_name)
# [29579, 22823, 38180]
# 解码
print("".join(map(chr, ascii_name)))
# 王大锤

4. md5不可逆

解密推荐去cmd5
import hashlib
name = "王大锤"
# 编码
print(hashlib.md5(name.encode()).hexdigest())
# 59c22c7bb43b8561cfd3b52f507171cb

5. 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"))
# 王大锤
相关文章
|
25天前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
210 100
|
25天前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
266 99
|
28天前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
28天前
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
28天前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
29天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
200 102
|
29天前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
206 104
|
29天前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
191 103
|
29天前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
135 82
|
7天前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
58 3

推荐镜像

更多