【问题标题】:Can you connect to MySQL database without providing pure credentials in Python code?您可以在不提供 Python 代码中的纯凭据的情况下连接到 MySQL 数据库吗?
【发布时间】:2020-08-11 13:31:17
【问题描述】:

有没有办法使用 RSA 密钥或在代码中提供 SHA-256 加密的登录名和密码来连接到 MySQL DB?因为假设我们想公开发布我们的应用程序。任何可以反编译应用程序的人都会看到所有代码,包括我们的数据库登录名和密码。

我想知道(纯理论上),因为如果我想在我的应用程序中实现某种代码系统(例如来自礼品卡或 PaySafeCards 的代码系统),以便用户可以拥有高级会员资格或不同的功能,我想将它们存储在我的数据库中,然后有人可以反编译应用程序,窃取代码中的登录名和密码,访问数据库,窃取代码并免费获得会员资格,所以 我将如何防止会发生这种情况吗?

【问题讨论】:

  • 您必须始终解密凭据,因此您必须在发送之前包含解密它的方法。像所有应用程序开发人员一样做,所以使用服务器端脚本来获取数据,你可以通过 https 与它通信
  • 我不敢相信我没有考虑过。这实际上看起来很简单。谢谢。另外,最好的加密是什么?我想像 SHA-256 或 AES-256 这样的东西不会起作用,因为你不能像那样解密这些哈希值吗?

标签: python mysql python-3.x database encryption


【解决方案1】:

您需要使用环境变量。检查this website 了解更多信息。您将使用 os 模块,更具体地说是 os.environ,它返回一个包含所有当前环境变量的字典。

如果您想在 Github 等公共平台上发布您的代码,您可以设置私有环境变量。检查here

【讨论】:

  • 但是这个应用程序可以被其他用户使用吗? (应用程序是否会连接到他们计算机上的数据库,或者可能会连接到不同的系统?)。环境变量不是保存在本地PC上吗?如果没有,那么用户可以访问它们吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多