拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Python加密终极指南:从Base64到RSA,这一篇根治选择困难症

一、前言在Python后端开发、接口鉴权、密码存储、数据传输场景中我们经常会用到各种“加密”方式。但90%的新手都分不清哪些是编码、哪些是哈希、哪些是真正的加密。本文一次性讲透 Python 五大常用数据处理方式Base64编码可逆非加密MD5哈希摘要不可逆已不安全SHA256哈希摘要不可逆密码/文件校验常用HMAC-SHA256带密钥哈希接口签名首选AES真正对称加密可逆、高安全全文代码可直接复制运行看完彻底告别加密混淆二、核心概念先行必看避坑关键先搞懂三个核心分类终身受用编码Base64只是格式转换完全可逆无任何安全性不是加密。哈希摘要MD5/SHA256单向不可逆用来做指纹、校验、存密码无法解密原文。对称加密AES真正的加密可逆、需要密钥密钥正确才能解密原文。三、Base64 编码最容易被误认为加密特点✅ 可逆、可解码✅ 用于二进制转文本传输图片、文件、字节流❌ 绝对不能用于密码加密Python 完整代码importbase64 textPython加密测试123# 编码b64_strbase64.b64encode(text.encode(utf-8)).decode(utf-8)print(Base64编码结果,b64_str)# 解码完全还原原文raw_strbase64.b64decode(b64_str).decode(utf-8)print(Base64解码结果,raw_str)适用场景图片转字符串、文件传输、接口二进制数据传递、前端展示字节内容。四、MD5 哈希摘要老旧、不推荐安全使用特点不可逆、固定128位长度已被破解存在碰撞漏洞只适合文件完整性校验禁止存储密码Python 代码importhashlib text123456md5_reshashlib.md5(text.encode(utf-8)).hexdigest()print(MD5结果,md5_res)五、SHA256 哈希摘要目前主流摘要算法特点不可逆、固定64位16进制字符串雪崩效应改一个字哈希完全大变抗碰撞能力强安全级别远高于MD5Python 代码importhashlib textMyPassword123456sha256_reshashlib.sha256(text.encode(utf-8)).hexdigest()print(SHA256结果,sha256_res)生产小坑单纯SHA256存密码不安全容易彩虹表爆破生产必须加盐saltimporthashlib pwd123456saltabcdef123456# 自定义盐值# 加盐哈希safe_pwdhashlib.sha256((pwdsalt).encode()).hexdigest()print(加盐SHA256密码,safe_pwd)六、HMAC-SHA256接口签名必备普通SHA256没有密钥内容一样哈希就一样。HMAC 带密钥哈希相同内容密钥不同结果完全不同是目前 API签名、验签、防篡改 标准方案。Python 代码importhmacimporthashlib# 密钥 请求内容secretbmy_api_secret_key_666contentbuser_id1001time20260905# 生成签名signhmac.new(secret,content,hashlib.sha256).hexdigest()print(HMAC-SHA256签名,sign)适用微信支付、第三方API、OpenAI接口、后端接口防篡改。七、AES 对称加密真正的加密算法前面所有算法要么可逆无安全要么不可逆不能解密。AES是真正加密加密后可解密必须密钥适用于手机号、身份证、用户隐私数据存储。Python AES 极简可运行示例需安装pip install pycryptodomefromCrypto.CipherimportAESimportbase64# 密钥必须16/24/32位keyb1234567890123456defaes_encrypt(text):cipherAES.new(key,AES.MODE_ECB)# 补位pad16-len(text.encode())%16textchr(pad)*pad rescipher.encrypt(text.encode())returnbase64.b64encode(res).decode()defaes_decrypt(cipher_text):cipherAES.new(key,AES.MODE_ECB)rescipher.decrypt(base64.b64decode(cipher_text))padres[-1]returnres[:-pad].decode()if__name____main__:s私密数据13800138000encaes_encrypt(s)decaes_decrypt(enc)print(AES加密,enc)print(AES解密,dec)八、五大算法终极对比面试必背算法 类型 可逆 是否需要密钥 核心用途Base64 编码 ✅ 可逆 否 二进制转文本传输MD5 哈希摘要 ❌ 不可逆 否 文件校验淘汰SHA256 哈希摘要 ❌ 不可逆 否 密码摘要、数据指纹HMAC-SHA256 密钥哈希 ❌ 不可逆 ✅ 需要 接口签名、防篡改AES 对称加密 ✅ 可逆 ✅ 需要 隐私数据加密存储九、业务场景最佳选型工作直接照抄图片、文件、二进制传输 → Base64用户密码存储 → 加盐SHA256 / bcrypt拒绝MD5接口请求签名、防篡改 → HMAC-SHA256手机号、身份证需要解密读取 → AES对称加密文件完整性校验 → SHA256十、总结Base64只是转码毫无保密性千万别当加密用。MD5彻底过时新项目一律不用。SHA256适合做数据指纹存密码必须加盐。HMAC-SHA256是目前最通用的接口安全签名方案。真正需要加密解密的隐私数据必须上 AES。看懂这篇彻底解决 Python 加密领域 90% 的开发、面试、业务问题
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门