python - 加密一个字符串,这样即使管理员也无法弄清楚
问题描述
我正在尝试制作一个保持用户部分匿名的 Discord 供词机器人。我计划通过使嵌入颜色对用户保持不变来实现这一点,这样人们就“知道”它是谁。
代码是开源的,所有服务器成员的用户名都是公开可见的,因此名称与环境变量混合,以确保没有人可以从他们的颜色追踪用户。但是,由于我知道变量的值,我仍然可以从技术上确定哪种颜色属于特定用户。
所以我希望有一些类似伪随机的东西,但是在重新启动程序时,必须生成相同的“随机”数字,但没有人应该能够弄清楚它是什么。
回到我原来的问题。是否可以对算法进行某种程度的随机化,这样即使我也无法回溯它以找到与用户关联的颜色?
我觉得这是不可能的,因为我想要一个具有已知可能输入(小列表)的确定性算法,并且我知道算法本身。就像拥有密码列表和使用的散列算法一样。
下面的代码:
import discord
import os
from hashlib import sha256
def embed_text(parsed, user):
encrypted = sha256((str(user) + os.environ['ENCRYPTION_KEY']).encode()).hexdigest()
color = int(encrypted[int(encrypted[0],16):int(encrypted[0],16)+6],16)
return discord.Embed(description=parsed, color=color)
解决方案
推荐阅读
- asp.net-mvc - 在现有站点中托管 MVC 应用程序
- azure-devops - VSTS Build 不生成代码覆盖率详细信息 - .Net core 2.1
- c# - 自动属性的默认接口方法和默认值
- jquery - DataTable更新现有行问题ajax
- python - 使用 read() 和 write() 将几个单词 docx 合并到另一个失败
- javascript - ChartJS 将每月标签更改为时间/日期
- python - How to create a dataframe caclulator with flask and google spreadsheets and display the results
- android - 如何从firebase android检索用户数据
- mysqli - 即使 SQL Server 中也不存在数据,如何在一个表中获取所有日期的日期范围
- ios - 基于某种逻辑在表格视图中显示某个单元格