2014-10-17 66 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

相關問題