Python_字符串_加密解密

目录:

一、加密解密原理
二、案例操作

创作不易,各位看官,点个赞收藏、关注必回关、QAQ、您的点赞是我更新的最大动力!

如果想要了解加密解密详细原理,即编码历史可以参考我的另外一篇专门讲字符串编码的在第三节:https://blog.csdn.net/weixin_44238683/article/details/105761646
这里就简单的描述下原理


一、加密解密原理

在这里插入图片描述


一、案例操作

第一个方法、手工创建密码表:

"""
加密解密
    maketrans 制作密码表
    translate 加密
    要求:通常注册在软件中的用户,密码必须加密后保存
"""
# 字典映射关系表
e = {"a": "1", "b": "2", "c": "3"}
# 制作密码表
table = str.maketrans(e)

# 明文密码:
s = "abc"
# 加密:使用密码表table加密
s2 = s.translate(table)
print("明文:", s, "; 加密后的密文:", s2)

# --------------------------------------
e2 = {"1": "a", "2": "b", "3": "c"}
table2 = str.maketrans(e2)

# 解密
s3 = s2.translate(table2)
print("密码:", s2, "; 解密后:", s3)

第二个方法、使用python中string创建密码表

import string #引入python当中字符模块

#使用大小写字母+数字构建 转换关系 s1 转换前字符,s2 转换后字符,按照顺序对应
s1 = string.ascii_letters + string.digits
#打印 s1 得到的结果: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
s2 = string.digits + string.ascii_letters
#打印 s2 得到的结果: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

#通过zip()函数将2个表格映射再通过dict()封装成字典  也就是方法一的字典映射表了 之前是手工现在是通过模块操作
e = dict(zip(s1, s2))


# 下一步 制作 制作密码表
table = str.maketrans(e)

#后面代码就可以参考第一个方法 接着写了

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中可以使用多种方法进行字符串的加密和解密操作。 一种常见的方法是使用`base64`模块进行编码和解码。编码可以将一个字符串转换为一串由大小写字母、数字和特殊字符组成的编码字符串,解码则可以将编码字符串还原为原始字符串。 下面是一个使用`base64`模块进行加密解密的示例代码: ```python import base64 def encrypt_string(input_string): # 将字符串转换为字节流 bytes_string = input_string.encode('utf-8') # 使用base64编码字节流 encrypted_bytes = base64.b64encode(bytes_string) # 将编码字节流转换为字符串 encrypted_string = encrypted_bytes.decode('utf-8') return encrypted_string def decrypt_string(input_string): # 将字符串转换为字节流 bytes_string = input_string.encode('utf-8') # 使用base64解码字节流 decrypted_bytes = base64.b64decode(bytes_string) # 将解码字节流转换为字符串 decrypted_string = decrypted_bytes.decode('utf-8') return decrypted_string # 测试加密和解密功能 original_string = 'Hello, World!' encrypted_string = encrypt_string(original_string) decrypted_string = decrypt_string(encrypted_string) print('原始字符串:', original_string) print('加密后的字符串:', encrypted_string) print('解密后的字符串:', decrypted_string) ``` 另一种常见的加密方法是使用`hashlib`模块进行哈希加密。哈希函数将一个字符串转换为固定长度的哈希值,且哈希值是不可逆的。这意味着无法通过哈希值还原出原始字符串,只能通过比对哈希值来验证字符串的正确性。 下面是一个使用`hashlib`模块进行哈希加密的示例代码: ```python import hashlib def encrypt_string(input_string): # 创建一个哈希对象 hash_object = hashlib.sha256() # 更新哈希对象的内容 hash_object.update(input_string.encode('utf-8')) # 获取哈希值 encrypted_string = hash_object.hexdigest() return encrypted_string # 测试加密功能 original_string = 'Hello, World!' encrypted_string = encrypt_string(original_string) print('原始字符串:', original_string) print('加密后的字符串:', encrypted_string) ``` 需要注意的是,哈希加密是不可逆的,所以无法通过解密函数获取原始字符串

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值