私は現在、ユーザーデータ(名前、住所、電話番号)を取得するプログラムを作成中です。私はそれを保存するときにデータを読むことができないようにしたい。リリースされたプログラムではないので、私はあまりにも複雑な暗号を使いたくはなく、単純で素早くスクランブル/スクランブルアルゴリズムを使用します。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. C#Scramble&Descramble Text
- 2. Java String String Out Of Bounds
- 3. JavaのStringは
- 4. String ... Javaのパラメータ
- 5. Java - String to StringReader
- 6. Java Regex compress String
- 7. Java - Stringクラス、スキャナクラス
- 8. java wsimport string
- 9. Java 8 Stringガベージコレクション
- 10. Java String to Type
- 11. JavaのStringプールストレージエラー
- 12. Java String import
- 13. sign xml string java
- 14. Java Node String Validation
- 15. Spring統合Java DSL .handle(String beanName、String methodName)
- 16. JavaのStore(UniqueString、String)
- 17. JavaのString I/O
- 18. Java Regex String#replaceAll Alternative
- 19. 分割JavaのString
- 20. - JavaのString.equal(String)メソッド
- 21. JavaのString問題
- 22. Java HttpSession .getAttribute(String name)
- 23. Java 8 String outofmemoryエラー
- 24. のJava - メソッドget(クラス)String型
- 25. Javaの - @ResponseBodyのString - エラー200
- 26. Java文字列hashCode null string
- 27. 未使用import文java string
- 28. JavaのStringオブジェクトの参照
- 29. JavaのStringエンコーディング(UTF-8)
- 30. String to byteとjavaのviceversa
アルゴリズムがどれほど複雑であるかは重要です。自分でそれを実装する計画はありませんか? Javaには、最初にコンサルティングに慣れるべき非常に豊富なライブラリエコシステムがあります。人気のある図書館のほとんどは許可されたライセンスで無料です。 –