2013-02-27 77 views
3

嗨我有一個用Java和Slick2d製作的遊戲,我有一個包含我所有資源(圖像,聲音等)的文件夾,我想知道如何加密它們以便人們無法編輯它們?我嘗試了MD5,但我不確定它是如何工作的,我不擔心人們闖入代碼,因爲我已經將jar拼接到一個exe文件中。另外,如果我需要知道如何解密這些文件,以便它們可以在代碼中使用,請解釋一下。如何加密資源文件?

+0

MD5不是加密算法。如果你加密他們,你還必須提供一個密鑰,並加密密鑰,並加密密鑰的密鑰,... – EJP 2013-02-27 21:59:55

+0

爲什麼你不能把資源放入JAR文件? – EJP 2013-02-27 23:19:55

+0

如果我把資源放在jar文件中,那麼它就成爲我不喜歡的一個巨大的exe文件。我希望我的遊戲名稱和程序文件文件夾中的所有.dat文件與遊戲launcher.exe具有代碼。 – user1883799 2013-02-28 15:25:43

回答

1

MD5是一個散列函數,它是不可逆的,兩個輸入可以產生相同的輸出。

如果文件的內容不是'祕密',您可以使用MD5進行驗證過程,這應該很容易。

  • 創建hashtabe(或只是一個表)的所有資源的應用程序使用
  • 一旦小程序lanched創建hash for each of the files,並將其與你的表比較哈希值,如果不一樣,有人改變了你的jar文件的內容。

我建議保持代碼中的哈希表所以這將是難以修改

2

有沒有辦法來保護圖像/資源,所有你能做的就是讓它稍微更難。如果您將圖像/資源交付給客戶端,那麼他們可以隨時解密它們,畢竟客戶端必須在某個時間點對其進行解密才能顯示。

Btw .: MD5是一種散列算法,它用於檢查數據是否未損壞。

+0

我該如何讓它稍微難一點?我想要的只是簡單的加密,所以普通玩家無法破解它。我意識到不可能從每個人加密。 – user1883799 2013-02-28 15:26:16

+0

好的,那麼你可以使用這樣簡單的東西:https://en.wikipedia.org/wiki/Caesar_cipher – 2013-02-28 15:44:59

0

如果你正在使用你的資源,你必須解密它們,然後客戶端才能使用它們,因爲它們在遊戲中被使用。