我有以下代码:
class Server:
def __init__(self):
#server credentials
self.ip = "192.168.1.182"
self.user = "bank_user"
self.password = "*mypass*"
self.port = 3307
self.database = "bank"
def connect_to_server(self):
try:
self.mydb = mysql.connector.connect(
host = self.ip,
user = self.user,
password = self.password,
port = self.port,
database = self.database
)
self.mycursor = self.mydb.cursor()
print("✓ Server connection estabilished")
rlist = [True]
问题是,我不想将其存储在我的代码中,因为我觉得它不安全 我正在创建一个银行应用程序(只是为了好玩),因此稍后用户不仅可以从我的电脑上将其用作 .py->.exe。我不应该存储在配置文件或纯文本文件中,因为如果有人获得凭据,他基本上可以登录 MySQL 数据库并修改所有数据。 所以不:
我想过创建密码加密,但是任何获得解密密钥的人都可以解密密码。我也考虑过创建自己的加密方法,但是任何访问我的代码的人都可以使用解密函数并执行它,例如:decryptor(“encryptedpassword”)
是的,任何获得您代码的人都可以提取 MySQL 密码并使用任何其他客户端进行连接。他们可以根据您授予该 MySQL 用户的权限执行任何 SQL 查询。
即使您使用 pytoexe 进行编译,技术人员也可以使用调试器或简单地使用
strings
工具来提取密码。
如果你加密,他们就可以解密。如果您尝试发明自己的加密算法,请假设他们可以更轻松地解密它。我认为你不是一个有成就的博士。在应用密码学中,因此您想到的任何新颖的加密方法肯定会比最先进的加密工具更容易破解。 解决这个问题有两种常用的方法: