首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python实现各种加密,接口加解密不说难

Python实现各种加密算法 - 接口加解密其实很简单!

大家好,我是高哥!今天给大家带来一个实用的主题 - Python中的加密算法实现。在开发中,特别是和接口打交道的时候,经常会遇到各种加密解密的需求。不少小伙伴觉得这个很难,其实掌握了要领就很简单。今天我就用最通俗的语言,带大家轻松搞定这个话题!

## 1. 最常用的几种加密方式

### 1.1 Base64编码

虽然严格来说Base64不算是加密,但它是最基础也是最常用的编码方式:

```python

import base64

# 编码

text = “高哥带你学Python”

encoded = base64.b64encode(text.encode()).decode()

print(f“编码后: {encoded}”)

# 解码

decoded = base64.b64decode(encoded).decode()

print(f“解码后: {decoded}”)

1.2 MD5加密

MD5是最常见的哈希算法之一,特点是单向加密,无法解密:

import hashlib

def get_md5(text):

md5 = hashlib.md5()

md5.update(text.encode())

return md5.hexdigest()

password = “123456”

print(f“MD5加密后: {get_md5(password)}”)

1.3 AES加密

AES是对称加密算法的典范,既可以加密也可以解密:

from Crypto.Cipher import AES

from Crypto.Util.Padding import pad, unpad

import base64

class AESCipher:

def __init__(self, key):

self.key = key.encode()[:16].ljust(16, b' ')

def encrypt(self, raw):

cipher = AES.new(self.key, AES.MODE_ECB)

return base64.b64encode(cipher.encrypt(pad(raw.encode(), 16)))

def decrypt(self, enc):

cipher = AES.new(self.key, AES.MODE_ECB)

return unpad(cipher.decrypt(base64.b64decode(enc)), 16).decode()

# 使用示例

aes = AESCipher(“my_secret_key”)

encrypted = aes.encrypt(“高哥的秘密数据”)

print(f“加密后: {encrypted}”)

decrypted = aes.decrypt(encrypted)

print(f“解密后: {decrypted}”)

2. 接口加密实战

很多小伙伴在对接第三方接口时,经常遇到各种加密参数。下面是一个真实的例子:

import time

import hashlib

import requests

def generate_sign(params, app_secret):

# 1. 参数排序

sorted_params = sorted(params.items())

# 2. 拼接字符串

sign_str = '&'.join([f“{k}={v}” for k, v in sorted_params])

# 3. 加上密钥

sign_str += app_secret

# 4. MD5加密

return hashlib.md5(sign_str.encode()).hexdigest()

def call_api():

# 接口参数

params = {

'app_id': 'your_app_id',

'timestamp': str(int(time.time())),

'data': '{“name”: “高哥”}'

}

# 生成签名

app_secret = 'your_app_secret'

params['sign'] = generate_sign(params, app_secret)

# 发送请求

return response.json()

3. 小贴士

密钥管理: 永远不要把密钥直接写在代码里,建议使用配置文件或环境变量

安全性考虑: MD5虽然常用,但安全性不高,建议使用SHA256等更安全的算法

编码问题: 在处理中文时,要特别注意编码问题,建议统一使用UTF-8

4. 实战练习题

尝试给一个字符串先进行Base64编码,再进行MD5加密

实现一个简单的JWT令牌生成和验证功能

给AES加密添加IV(初始化向量)提高安全性

小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问高哥哦。祝大家学习愉快,Python学习节节高!

python学习 #加密算法 #接口开发

Would you like me to explain or break down an

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O37ruEKUbyKp64NUPseMaIIA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券