企业网站免费建站程序,建筑公司起名大全2021最新版的,百度网页版下载安装,wordpress修改数据库前缀相信很多使用 python 的小伙伴在工作中都遇到过#xff0c;对数据进行相关编码或加密的需求#xff0c;今天这篇文章主要给大家介绍对于一些常用的数据编码和数据加密的方式#xff0c;如何使用 python 去实现。话不多说#xff0c;接下来直接进入主题#xff1a; 前言 1… 相信很多使用 python 的小伙伴在工作中都遇到过对数据进行相关编码或加密的需求今天这篇文章主要给大家介绍对于一些常用的数据编码和数据加密的方式如何使用 python 去实现。话不多说接下来直接进入主题 前言 1、base64 编码 什么是 Base64 编码 Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法 在 python 中对数据进行 base64 编码可以使用 base64 这个官方库 案例 import base64
data musen
# base编码data data.encode()res base64.b64encode(data)print(res)
# base64解码res2 base64.b64decode(res)print(res2) 2、常见的哈希算法 hash算法有很多比如MD4、MD5、SHA-1 , SHA-224, SHA-256, SHA-384 和 SHA-5等等。其中MD5是比较常见的一种,也称之为MD5加密。 什么是 MD5 加密 MD5(Message Digest Algorithm 5)是一种哈希算法是不可逆的即通过 md5 加密之后没办法得到原文没有解密算法 python 中有一个叫做 hashlib 的官方库对于一些常见的哈希算法这个库都实现了咱们在工作中如果要使用 MD5 加密直接使用 hashlib 这个库就可以实现。 案例
from hashlib import md5
def encrypt_md5(data): md5加密 # 创建md5对象 new_md5 md5() new_md5.update(data.encode(utf-8)) res new_md5.hexdigest() # 加密 return res 3、DES 加密 什么是对称加密 对称加密指的的加密和解密用同一个秘钥进行加解密的加密方式。 什么是 EDS 加密 des 对称加密是一种比较传统的加密方式其加密运算、解密运算使用的是同样的密钥信息的发送者和信息的接收者在进行信息的传输与处理时 必须共同持相同的密码。 在 python 中有一个叫做 pyDes 的第三方库可以用来实现 DES 加密使用之前需要先通过 pip 命令安装pip install pyDes 案例
from pyDes import des, CBC, PAD_PKCS5import binascii
def des_encrypt(s, KEY): secret_key KEY iv secret_key k des(secret_key, CBC, iv, padNone, padmodePAD_PKCS5) en k.encrypt(s, padmodePAD_PKCS5) return binascii.b2a_hex(en).decode()
def des_descrypt(s, KEY): secret_key KEY iv secret_key k des(secret_key, CBC, iv, padNone, padmodePAD_PKCS5) de k.decrypt(binascii.a2b_hex(s), padmodePAD_PKCS5) return de.decode()
if __name__ __main__: # 秘钥 KEY mHAxsLtt # 加密 res des_encrypt(python666, KEY) print(res) # 解密 res2 des_descrypt(res, KEY) print(res2) 4、3DES 加密 什么是 3DES 加密 3DES或称为 Triple DES是三重数据加密算法TDEATriple Data Encryption Algorithm块密码的通称。它相当于是对每个数据块应用三次 DES 加密算法 python 中实现 3DES 加密可以使用pyDes 这个模块去实现 案例
import base64import hashlib
import pyDesdef encrypt_3des(data): key U8NjHq1ZP10 hash_md5 hashlib.md5() hash_md5.update(key.encode(encodingUTF-8)) key hash_md5.hexdigest() iv key[0:8] key2 key[0:24] k pyDes.triple_des(key2, pyDes.CBC, IViv, padNone, padmodepyDes.PAD_PKCS5) d k.encrypt(data.encode()) d base64.b64encode(d) return d.decode()def descrypt_3des(data): key U8NjHq1ZP10 hash_md5 hashlib.md5() hash_md5.update(key.encode(encodingUTF-8)) key hash_md5.hexdigest() iv key[0:8] key2 key[0:24] k pyDes.triple_des(key2, pyDes.CBC, IViv, padNone, padmodepyDes.PAD_PKCS5) data base64.b64decode(data) d k.decrypt(data) return d.decode()if __name__ __main__: res encrypt_3des(lemonban) print(res) res2 descrypt_3des(res) print(res2) 5、AES 加密 什么是 AES 加密 AES 也是一种对称加密。它是用来替代之前的 DES 的安全性更高。目前已经被多方分析且广为全世界所使用并在 2002 年 5 月 26 日成为有效的标准 关于 python 中实现 Aes 加密的库很多大家可以去 pypi 上自行下载安装下面案例用的是 Crypto 这个库 案例 import base64from Crypto.Cipher import AESclass AesEncrypt: # 密钥 key 0CoJUm6Qyw8W8jud # 偏移量 vi 0102030405060708def encrypt(self, data): 加密 data data.encode(utf8) data (lambda s: s (16 - len(s) % 16) * chr(16 - len(s) % 16).encode(utf-8))(data) cipher AES.new(self.key.encode(utf8), AES.MODE_CBC, self.vi.encode(utf8)) encryptedbytes cipher.encrypt(data) encodestrs base64.b64encode(encryptedbytes) enctext encodestrs.decode(utf8) return enctextdef decrypt(self, data): 解密 data data.encode(utf8) encodebytes base64.decodebytes(data) cipher AES.new(self.key.encode(utf8), AES.MODE_CBC, self.vi.encode(utf8)) text_decrypted cipher.decrypt(encodebytes) unpad lambda s: s[0:-s[-1]] text_decrypted unpad(text_decrypted) text_decrypted text_decrypted.decode(utf8) return text_decryptedif __name__ __main__: # 注意点加密数据中有中文的时候会有问题 data musen123 aes AesEncrypt() # 加密 enctext aes.encrypt(data) print(enctext) # # 解密 text_decrypted aes.decrypt(enctext) print(text_decrypted)