私は現在、ユーザーデータ(名前、住所、電話番号)を取得するプログラムを作成中です。私はそれを保存するときにデータを読むことができないようにしたい。リリースされたプログラムではないので、私はあまりにも複雑な暗号を使いたくはなく、単純で素早くスクランブル/スクランブルアルゴリズムを使用します。java string scramble
答えて
クラスを定義して(たとえば、Foo
としましょう)、そのクラスのインスタンスを作成してデータを保持できるものをリストに入れます。その後、リストオブジェクトをバイナリファイルとして保存します。このような何か:
public static void saveObject(List<Foo> obj, String filePath)
{
OutputStream os = null;
try
{
os = new ObjectOutputStream(new FileOutputStream(filePath));
os.writeObject(obj);
}
catch(Exception ex){}
finally
{
os.close();
}
}
次にあなたが好きそれを読み込むことができます:あなたは、このオブジェクトのシリアル化を使用するSerializable
インタフェースを実装する必要が
public static List<Foo> loadObject(String filePath)
{
List<Foo> obj = null;
InputStream is = null;
try
{
is = new ObjectInputStream(new FileInputStream(filePath));
obj = (List<Foo>) is.readObject();
}
catch(Exception ex){}
finally
{
is.close();
}
return obj;
}
注意。
それでも、ファイルはかなり読みやすくなります。オブジェクトのシリアライズ時に実行されるオブジェクトデータのスクランブルはありません。心配しなくても、ObjectOutputStreamとFileOutputStreamの間にAES Cipherを持つCipherOutputStreamを置くことができます。簡単な難読化のためには、静的キーとECBエンコーディング(およびPKCS5Padding)を使用してください。このオプションを選択する前に、プロとシリアライズについて理解していることを確認してください。例えば内部プログラム構造の変更がディスクに反映される可能性があります。 –
あなたのポストによれば、暗号化/復号化の何らかの方法が必要なので、あなたのアルゴリズムの強さの問題を理解する必要があります。 あなたのデータを「隠す」方法はたくさんありますが、この「防御」は比較的簡単に壊れる可能性があります。 最も簡単な実装は(ナイーブ) です。文字列内の各文字をいくつかの数字に置き換えてください。 - 文字列内の文字のascii値で再生します。
もう一度本物の質問は、十分に良いかどうかです。 "セキュリティ"の観点から - 確かにそうではありません。
- 1. Java String import
- 2. java wsimport string
- 3. String ... Javaのパラメータ
- 4. Java - String to StringReader
- 5. sign xml string java
- 6. Java String to Type
- 7. Java - Stringクラス、スキャナクラス
- 8. - JavaのString.equal(String)メソッド
- 9. 分割JavaのString
- 10. JavaのString I/O
- 11. JavaのStore(UniqueString、String)
- 12. JavaのString問題
- 13. Java 8 String outofmemoryエラー
- 14. Java文字列hashCode null string
- 15. String to byteとjavaのviceversa
- 16. JavaのStringエンコーディング(UTF-8)
- 17. Scala seq <string>をJavaリストに変換する<string>
- 18. StringをJavaのClobに変換する
- 19. JavaのBase64 Stringから変換する
- 20. Javaでの使用方法(String [] [] args)
- 21. DataOutputStreamとJavaのStringを比較する
- 22. Java辞書<String、List <Object>>
- 23. Java:セットからの列挙<String>
- 24. Javaのエラー文字列(リスト<String>)
- 25. ツリー(ノードクラスなし)は、JavaのString XML
- 26. java generic String to <T>パーサー
- 27. JSONデータをAndroid Java Stringに渡す
- 28. Javaフィールド<String>対文字列
- 29. javaでは "String ..."とは何ですか?
- 30. プロパティにUTF-8エンコードされたJava String
アルゴリズムがどれほど複雑であるかは重要です。自分でそれを実装する計画はありませんか? Javaには、最初にコンサルティングに慣れるべき非常に豊富なライブラリエコシステムがあります。人気のある図書館のほとんどは許可されたライセンスで無料です。 –