esp*_*akk 5 python security encryption
我正在制作一个有任务和解决方案的小网页游戏,通过输入完成任务后提供给用户的代码来解决解决方案.为了获得一些安全性(反对作弊),我不想以纯文本形式存储游戏所产生的代码.但是因为我需要能够在完成任务时为玩家提供代码,所以我无法对其进行哈希处理,因此我无法对其进行检索.
那么使用python加密/解密某些东西最安全的方法是什么?
最安全的加密是不加密的.密码应缩减为哈希值.这是一种单向转换,使密码(几乎)无法恢复.
当给别人一个代码,你可以做到以下几点是真正安全的.
(1)生成一些随机字符串.
(2)给他们字符串.
(3)保存您生成的字符串的哈希值.
一旦.
如果他们"忘记"代码,你必须(1)确保他们被授权给出代码,然后(2)再次执行该过程(生成新代码,给它们,保存散列.)
如果您的脚本可以解密密码,那么有人可以闯入您的服务器.只有当有人输入密码才能解锁时,加密才真正有用 - 如果它仍然未锁定(或者脚本有解锁密码),加密是没有意义的
这就是为什么散列更有用,因为它是一个单向过程 - 即使有人知道你的密码哈希,他们也不知道他们必须输入的纯文本来生成它(没有大量的暴力)
我不担心将游戏密码保持为纯文本.如果您担心保护它们,请修复可能的SQL注入/等,确保您的Web服务器和其他软件是最新的并且配置正确等等.
也许想办法让窃取密码的吸引力低于实际玩游戏的吸引力?例如,有一个游戏(我不记得它是什么),如果你使用了跳级作弊,你进入了下一个级别,但它没有将其标记为"完整",或者你可以跳过这个级别但没有得到任何积分.或者看看Project Euler,你可以做任何级别,但是如果你输入答案你只能获得积分(并且解决问题的答案是整个游戏点,所以作弊会打败游戏)
如果你真的偏执,你可以有可能使用非对称加密,在那里你基本上加密的东西key A
,你只能读它key B
..
我想出了一个类似的概念,使用GPG加密(流行的非对称加密系统,主要用于电子邮件加密或签名)来保护网站数据.我不太确定这将如何适用于保护游戏级密码,正如我所说,你甚至需要非常偏执才能考虑到这一点.
简而言之,我会说密码以纯文本形式存储,并将您的安全问题集中在其他地方(Web应用程序代码本身)
归档时间: |
|
查看次数: |
4056 次 |
最近记录: |