2014-10-17 65 views
1

自从去年夏天以来我一直在使用python,我认为我已经吸收了足够的信息来做至少基本的编程。在存储之前模糊数据

事情是,我正在制作基于文本的RPG游戏,我已经完成了保存过程,游戏现在将信息传输到savegame.txt。但是我想让游戏变得更难。我在论坛上看到,更改文件名是可能的,但是这种情况还不够接近,或者我无法通过行读取它的工作原理。所以这个想法是它变成了不可读的格式,但是里面的代码不会改变,它可以被“归一化”。

所以更清楚:

如何更改savegame.txt到savegame.xsave(或类似的东西),反之亦然?

+4

您可以根据需要设置文件名,python不关心扩展名。但它仍然是一个文本文件,所以你没有完成任何事情。 – davidism 2014-10-17 18:29:29

+2

这是真的有效利用你的时间制作游戏吗?为什么不等到你完成游戏之后,才会陷入这种早期的优化,浪费,黑客攻击,功能增强......等 – 2014-10-17 18:30:43

+0

想想看,如果你说需要测试一个特定的级别或情况下,如果你的保存文件被加密或混淆,那么操纵一个保存文件来创建上述情况(试图用特定的设备达到一定的水平!)是很难的。然后您必须手动编写功能来执行此类操作。花时间制作游戏,而不是为其制作防御机制。 – 2014-10-17 20:43:56

回答

1

我的意见一致认为,这可能不是你最好的时间。但最简单的做法是利用rot13编码器。

with open("data.secret", 'w') as f: 
    f.write("player score: 500".encode('rot13')) 
    f.write("player badge: cool guy".encode('rot13') 

with open("data.secret") as f: 
    x = f.readline().decode('rot13') 
0

只需使用任何加密算法加密文件中的所有文本即可。 例如,您可以pycrypto库。

+0

没有用,因为解密密钥必须包含在程序中。 – davidism 2014-10-17 18:34:07

+0

这个任务不会让黑客变得不可能 - 一切都可以被黑客攻击 - 任务只是让它更难。对于这个任务,简单的加密就足够了。只是一个不知道加密的人将无法改变这个文件:-) – Zav 2014-10-17 18:36:48

0

如果你只是想使文本文件无法读取,你可以只用,例如,Base64编码,它:

import base64 
encoded = base64.b64encode("myTextFileContents") 
decoded = base64.b64decode(encoded) 

你可以在这里阅读更多:https://docs.python.org/3/library/base64.html

相关问题