前言在网络安全和数据开发中加密算法是保护数据隐私、防止信息泄露的核心技术。Python 凭借丰富的标准库和第三方库能轻松实现各类加密需求。本文将从编码、摘要、对称加密、非对称加密四个维度手把手带你实现 Python 加密算法实战代码可直接复制运行适合新手入门和项目开发参考加密算法分类通俗易懂版编码算法Base64非加密仅数据格式转换可逆用于数据传输摘要算法MD5/SHA单向加密不可逆用于校验数据完整性、密码存储对称加密AES加密解密用同一密钥速度快适合大量数据加密非对称加密RSA公钥加密、私钥解密安全性高适合小数据 / 密钥传输一、环境准备本文使用 Python 标准库 第三方库pycryptodome加密神器替代老旧的 pycrypto安装命令pip install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple二、实战代码完整可运行1. Base64 编码 / 解码数据传输适用场景图片转码、接口参数传输、简单数据格式化import base64 def base64_encode(data: str) - str: Base64 编码 # 字符串转字节 - 编码 - 字节转字符串 encode_bytes base64.b64encode(data.encode(utf-8)) return encode_bytes.decode(utf-8) def base64_decode(encode_data: str) - str: Base64 解码 decode_bytes base64.b64decode(encode_data) return decode_bytes.decode(utf-8) # 测试 if __name__ __main__: original_data CSDN加密实战Python加密算法 print(原始数据, original_data) encode_result base64_encode(original_data) print(Base64编码, encode_result) decode_result base64_decode(encode_result) print(Base64解码, decode_result)2. MD5 摘要加密不可逆密码存储适用场景用户密码存储、文件完整性校验、数据签名⚠️ 注意MD5 是单向加密无法解密只能对比摘要值import hashlib def md5_encrypt(data: str, salt: str csdn_encrypt_salt) - str: MD5 加密带盐值提升安全性 :param data: 原始数据 :param salt: 盐值防止彩虹表破解 :return: 32位MD5摘要 # 拼接数据盐值转字节 md5_obj hashlib.md5((data salt).encode(utf-8)) return md5_obj.hexdigest() # 测试 if __name__ __main__: pwd 123456 print(原始密码, pwd) print(MD5加密结果, md5_encrypt(pwd))3. AES 对称加密主流加密大量数据适用场景文件加密、接口敏感数据加密、本地数据保护AES 支持 128/192/256 位密钥本文用CBC 模式最安全常用from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad import base64 # AES 配置密钥必须16/24/32位偏移量16位 AES_KEY 1234567890123456 # 16位密钥 AES_IV abcdefghijklmnop # 16位偏移量 def aes_encrypt(data: str) - str: AES 加密 cipher AES.new( keyAES_KEY.encode(utf-8), modeAES.MODE_CBC, ivAES_IV.encode(utf-8) ) # 填充数据AES要求数据长度为16的倍数 padded_data pad(data.encode(utf-8), AES.block_size) encrypted_bytes cipher.encrypt(padded_data) # 转Base64方便传输 return base64.b64encode(encrypted_bytes).decode(utf-8) def aes_decrypt(encrypt_data: str) - str: AES 解密 cipher AES.new( keyAES_KEY.encode(utf-8), modeAES.MODE_CBC, ivAES_IV.encode(utf-8) ) encrypted_bytes base64.b64decode(encrypt_data) decrypted_bytes unpad(cipher.decrypt(encrypted_bytes), AES.block_size) return decrypted_bytes.decode(utf-8) # 测试 if __name__ __main__: data 用户手机号13800138000身份证110101199001011234 print(原始敏感数据, data) aes_enc aes_encrypt(data) print(AES加密结果, aes_enc) aes_dec aes_decrypt(aes_enc) print(AES解密结果, aes_dec)4. RSA 非对称加密最高安全密钥交换适用场景支付接口、登录认证、对称密钥安全传输RSA 生成公钥加密私钥解密一对密钥配套使用from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 import base64 def generate_rsa_key(): 生成RSA公钥和私钥保存到文件只需生成一次 # 生成2048位密钥 rsa_key RSA.generate(2048) # 私钥 private_key rsa_key.export_key() with open(private_key.pem, wb) as f: f.write(private_key) # 公钥 public_key rsa_key.publickey().export_key() with open(public_key.pem, wb) as f: f.write(public_key) print(RSA密钥生成完成) def rsa_encrypt(data: str, public_key_path: str public_key.pem) - str: RSA 公钥加密 with open(public_key_path, rb) as f: public_key RSA.import_key(f.read()) cipher PKCS1_v1_5.new(public_key) encrypted_bytes cipher.encrypt(data.encode(utf-8)) return base64.b64encode(encrypted_bytes).decode(utf-8) def rsa_decrypt(encrypt_data: str, private_key_path: str private_key.pem) - str: RSA 私钥解密 with open(private_key_path, rb) as f: private_key RSA.import_key(f.read()) cipher PKCS1_v1_5.new(private_key) encrypted_bytes base64.b64decode(encrypt_data) decrypted_bytes cipher.decrypt(encrypted_bytes, None) return decrypted_bytes.decode(utf-8) # 测试 if __name__ __main__: # 第一步生成密钥仅第一次运行 # generate_rsa_key() # 加密解密 data 支付密码666666 print(原始数据, data) rsa_enc rsa_encrypt(data) print(RSA加密结果, rsa_enc) rsa_dec rsa_decrypt(rsa_enc) print(RSA解密结果, rsa_dec)三、四大加密算法对比总结表格算法类型可逆性速度安全性适用场景Base64可逆极快低仅编码数据传输、图片转码MD5不可逆快中可加盐密码存储、数据校验AES可逆快高大量数据、文件加密RSA可逆慢极高小数据、密钥交换、支付四、开发建议密码存储必须用MD5/SHA256 盐值绝对不要明文存储业务数据加密优先用AES速度快密钥单独管理敏感接口用RSA加密 AES 密钥兼顾安全和效率Base64不要当加密用仅用于数据格式转换五、总结本文完整实现了 Python 中最常用的四大加密算法代码简洁、注释清晰、可直接用于项目开发。加密是网络安全的基础掌握这些算法能轻松应对日常开发中的数据保护需求。Python开发环境搭建Windows超详细 HelloWorld工程实例新手零踩坑Python 文件操作实战从入门到精通一文学会打开 / 读取 / 修改文件从零入门 Python 加密算法含完整可运行代码 场景对比 避坑详解如果觉得本文对你有帮助欢迎点赞收藏关注后续会持续更新Python新手实战教程陪你从入门到精通日常深耕嵌入式、物联网、协议开发相关技术有技术答疑、项目合作、毕设指导需求均可私信私聊