質問

Java でプログラムを実行する間にデータを保存する最良の方法は何ですか?テキスト ファイルを使用してその方法で情報を保存できることはすでに知っていますが、プログラムの実行の間にプログラムによって生成された情報を保存するより良い方法があるかどうか疑問に思っていました。

また、情報を安全に保つための方法はありますか?具体的には、エンドユーザーがアクセスできないようにしたいと考えています。

役に立ちましたか?

解決

  どのような方法があった場合は、

私は思っていました   その他の情報を配置します   実行間のプログラムによってgenereated   プログラムの?

単にそれを取り戻すために、ファイルやObjectOutputStreamにそれをシリアル化するためにObjectInputStreamを使用します。

  

またようにそれを行うにはどのような方法があります   情報をセキュアに維持するには?から   エンドユーザがそれにアクセスできること?

コードは、エンドユーザーのシステム上で実行されている場合は、

その後、ノー、データを取得してからそれらを防ぐための方法はありません - それはデバッガをアタッチして、プログラムのを検査するのは簡単ですので、それは、でも何とかそれをエンコードしようとしているあなたの時間の価値はありません状態は、それが動作している間。バイナリ形式として、Javaの直列はそれを解読から、非技術的なユーザーを防ぐことができますし、それはかなりあなたが望むことができるのが最善です。

他のヒント

私はそれを自分自身使ったことがないが、私はそれが何のJDKの<のhref = "http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferencesだと思います元々のために設計されたの.htmlを」のrel = "noreferrer"> java.util.prefs.Preferencesます。

あなたはプロパティのためにを使用することができます情報を格納します。あなたはそれが安全なようにしたい場合は、<のhref =「http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/JCERefGuide.html#CipherStream」のrelのいくつかの並べ替えを介して実行= "nofollowをnoreferrer">暗号化ストリームでます。

ファイルの暗号化、またはパスワードを使用して、ローカルデータベースます。

あなたは、データを格納するために db4oのして使用することができます。これは、オブジェクトデータベースだと暗号化をサポートしています。

のJavaを開始するときに使用する最善のことはObjectOutputStreamのか、テキストファイルを使用することです。あなたはより多くの経験を持っていたら、あなたは、データベースを使用することができます。

どのように直列化についてはどうですか?

これは、ユーザーが読み取ることができない、それは比較的簡単です。

他の人が言ったように、

、データをシリアル化するために無数の方法があります。あなたはSQLiteのか、単なる直列化のような軽量のものを使用することができます。ただ、それは容易に反転させることができるので、あなたは、データを暗号化するために作成したすべての試みは、特にJavaコードの場合には、敗北することができることを実現します。

ユーザーの大半は、あなたのデータを復号化する方法を見つけ出すためにJavaプログラムをリバースエンジニアリングの複雑さを理解するのに十分な技術的でない場合は、

しかし、あなたが言及したもののようないくつかの基本的な暗号化方式で逃げることができるはずです別の答えで良いです。ただ、いつでも何でも、あなたがコントロールしていないマシン上に常駐し、それをクラックする方法を考え出すから最も永続的なユーザーを維持する方法がないことを実現します。

誰かがローカルDBファイルに接続することができるように十分にスマートであるならば、彼らはまだいくつかの方法で、あなたの暗号アルゴリズムを逆にする必要がありますので、

私は個人的にあなたがフィールドに入れsqliteのを使用して、データ上でいくつかの簡単な暗号化を使用することをお勧め。通常のユーザーの99.9%は、調査のこのレベルを気にしません。

のシリアル化技術としてXMLは、オブジェクト直列化などのバイナリ形式よりもストレージを調整しますあなたのプログラムで将来の変化に、より弾力的です。しかし、それはほとんどのユーザーが、それは非常に読みやすく、変更になるだろう。

非常にシンプルな圧縮/伸張は、データの実際の内容になってから、ほぼすべてのユーザーを停止します。あなたの現在の書き込みストリームの周りGZipInputStream / GZipOutputStreamの使用は、仕事をするだろう。より多くのあなたがより多くのそれはあなたのソフトウェアのユーザーに影響を与える取得のぞきに対するあなたの防衛を詳しく説明します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top