python 根据 encrypteddata iv 获取手机号
时间: 2023-12-14 13:35:37 浏览: 119
获取手机号需要进行解密操作,首先需要用到 AES 算法进行解密,具体步骤如下:
1. 将 encrypteddata 和 session_key 进行 base64 解码,得到相应的字节数组。
2. 对 session_key 进行 base64 解码,得到 16 字节的 AES 加密密钥。
3. 使用 AES-128-CBC 模式进行解密,需要用到 iv 参数。将 iv 参数也进行 base64 解码得到相应的字节数组。
4. 使用解密得到的密钥以及 iv 参数进行解密,得到解密后的数据。
5. 解密得到的数据是 JSON 格式的字符串,其中包含了手机号码等信息。
下面是一个示例代码:
```python
import base64
from Crypto.Cipher import AES
# 从小程序前端获取的参数
session_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
encrypted_data = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
iv = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# 对参数进行 base64 解码
session_key = base64.b64decode(session_key)
encrypted_data = base64.b64decode(encrypted_data)
iv = base64.b64decode(iv)
# 使用 AES-128-CBC 模式进行解密
cipher = AES.new(session_key, AES.MODE_CBC, iv)
decrypted_data = cipher.decrypt(encrypted_data)
# 解密后的数据是 JSON 格式的字符串,可以使用 json 模块进行解析
import json
data = json.loads(decrypted_data)
# 获取手机号码
phone_number = data['phoneNumber']
print(phone_number)
```
注意:以上代码仅为示例,具体实现还需要根据实际情况进行修改。
阅读全文