0

私は Java でゲームを書いています。ゲームを保存したいと思います。XML ドキュメントのセットとして zip ファイルに保存します。私が知りたいのは、ユーザーがこれらのファイルを編集したり見つけたりできないように、透過的にこれを行うことができる方法であるかどうかです。ファイルを非表示にすることだけを考えましたが、これは汚くて醜い方法のようです。隠しファイルについて私が最も気に入らない点は、システム間で互換性がないように見えることです。いずれにせよ、ファイルを jar に保存してそこから読み取る場合は、それも同様に受け入れられます。また、Java でファイルを非表示にする良い方法はないようです。どんな助けでも大歓迎です。

4

1 に答える 1

0

私が知りたいのは、ユーザーがこれらのファイルを編集したり見つけたりできないように、透過的にこれを行うことができる方法であるかどうかです。

最終的に、いいえ。

ローカル マシンに状態を保存するために行うことはすべて、最終的にリバース エンジニアリングされる可能性があり、特権ユーザーはその状態を取得できます。

しかし、人々が「カンニング」するのを難しくするためにできることはたくさんあります。たとえば、ファイルを暗号化するか、シードされたハッシュを生成して「いじり」を検出できます。


Java 7 でファイルを非表示にするのは簡単です。

Path path = FileSystems.getDefault().getPath("directory", "hidden.txt");
Boolean hidden = path.getAttribute("dos:hidden", LinkOption.NOFOLLOW_LINKS);
if (hidden != null && !hidden) {
    path.setAttribute("dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);
}

(以下からコピー: http://javarevisited.blogspot.com/2012/01/how-to-hide-file-java-program-example.html )

以前のバージョンの Java では、外部 Windows アプリケーションを呼び出すか、ネイティブ ライブラリを呼び出す必要がありました。ただし、次の点に注意してください。

  • 「隠し」ファイルは、気にしないユーザーからのみ隠されます
  • 異なるプラットフォームでは動作が異なります。たとえば、Linux/Unix ベースのシステムの場合、「hidden」はファイル名が「.」で始まることを意味します。
于 2013-04-29T22:59:07.443 に答える