python - 建议的通过python加密的方法
问题描述
感谢您的时间和精力,但我想我可能错误地传递了我想要的东西,我的错。
长话短说,有什么方法可以加密某个字符串或整个数组?
{
"gender": "male",
"phone-number": "1234567890",
"job": "student",
"location": {
"county": "LA-county",
"town": "sunvalley",
"country": "USA",
"apartment-number": "13579abcdefg"
},
"item": {
"item-type": "cloth",
"item-size": "large",
"item-number": "xyz24680abc",
"item-material": "cotton"
},
"hairstyle": "long",
"alive": "true",
}
假设公寓号码:13579abcdefg 需要加密。我可以像下面这样使用 fernet 吗?
from cryptography.fernet import Fernet
key = Fernet.generate_key()
f = Fernet(key)
encrypt_value = f.encrypt(b"YourString")
f.decrypt(encrypt_value)
我听说有人提到 base64 ......当涉及到加密某些值时,你会推荐哪种方法?
解决方案
此代码将在 JSON 上运行,并将使用问题中指定的格式解析 values_to_change 列表中 JSON 中键的名称
import json
with open('filename.json') as f:
data = json.load(f)
values_to_change = ["phone-number", "apartment-number", "item-number"]
for k, v in data.items():
if isinstance(v, str):
if k in values_to_change:
data[k] = "{}...{}".format(v[:3], v[-3:])
elif isinstance(v, dict):
for kv, vv in v.items():
if kv in values_to_change:
data[k][kv] = "{}...{}".format(vv[:3], vv[-3:])
with open('newfilename.json', 'w') as f:
json.dump(data, f, indent=2)
输出
{'gender': 'male',
'phone-number': '123...890',
'job': 'student',
'location': {'county': 'LA-county',
'town': 'sunvalley',
'country': 'USA',
'apartment-number': '135...efg'},
'item': {'item-type': 'cloth',
'item-size': 'large',
'item-number': 'xyz...abc',
'item-material': 'cotton'},
'hairstyle': 'long',
'alive': 'true'}
推荐阅读
- python - 使用 scipy.sparse.linalg.eigs 计算复杂特征值
- xml - PowerShell ISE 将 Foreach 用于 XML 数组
- java - 重用 MustacheFactory 和 Mustache 编译
- c++ - 带有 boost:asio 的线程组
- php - PHP 用 ZipArchive() 替换 docx 图片
- google-bigquery - StandardSQL - 如何在没有匹配列的表中执行 LOOKUP
- return - 这句话“返回语句将控制权返回给调用函数”是什么意思
- node.js - NodeJS subprocess.send() 静默失败
- python - 如何在使用 pytest-console-scripts 测试的 python 脚本中模拟函数?
- django - 集成测试 DRF