현재 사용자 데이터 (이름, 주소, 전화)를 사용하는 프로그램을 작성 중입니다. 저장하면 데이터를 읽을 수 없게 만들고 싶습니다. 릴리스 된 프로그램이 아니기 때문에, 너무 복잡하고 단순하고 빠른 스크램블/스크램블 알고리즘이 아닌 암호를 사용하고 싶지 않습니다.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;
}
참고.
그래도 파일을 읽기 쉽게 만들 수 있습니다. 객체 직렬화시 수행되는 객체 데이터의 스크램블링이 없습니다. 걱정하지 않아도 AO 암호를 사용하여 CipherOutputStream을 ObjectOutputStream과 FileOutputStream 사이에 넣을 수 있습니다. 간단한 난독 화를 위해서는 정적 키와 ECB 인코딩 (및 PKCS5Padding)을 사용하십시오. 이 옵션을 선택하기 전에 프로와 직렬화에 대한 이해를 확실히하십시오. 예 : 내부 프로그램 구조의 변경이 디스크에 반영 될 수 있습니다. –
당신의 게시물에 따르면, 당신은 암호화/암호 해독의 어떤 방법을 필요로하기 때문에 알고리즘의 강도의 문제를 이해해야합니다. 데이터를 "숨길"수있는 많은 방법에 대해 생각할 수 있지만이 "방어"는 비교적 쉬운 방법으로 손상 될 수 있습니다. 가장 쉬운 구현 방법은 순진한 방법입니다. - 문자열의 각 문자를 숫자로 바꿉니다. - 문자열에서 ASCII 문자로 값을 재생합니다.
또 다시 여기 진짜 질문은 그것이 충분히 좋은지 아닌지입니다 ??? "보안"의 관점에서 - 확실히 아닙니다.
- 1. SQL scramble 데이터베이스 varchar 필드
- 2. Java : assertEquals (String, String)가 안정적입니까?
- 3. java from String [] from
- 4. java wsimport string
- 5. sign xml string java
- 6. Java String [] to int []
- 7. Java - String to StringReader
- 8. 다차원 String [] [] 배열 java
- 9. java string tokenizer
- 10. JAVA : json string <string, string> (또는 객체)
- 11. Java String externalization key missing
- 12. Wierd java string 비교 작업
- 13. Java String UTF-8 인코딩
- 14. java string split 정규 표현식
- 15. Java + sqlite REAL 필드에서 String
- 16. Java : String []을 초기화하는 방법?
- 17. JavaScript에 전달 된 String 변수에서 Java String 메소드에 액세스하려면 어떻게해야합니까?
- 18. LinkedHashMap <String, String>을 Java 객체로 변환하십시오.
- 19. Groovy String 콜렉션을 Java String Array로 변환하는 방법은 무엇입니까?
- 20. java에서 "string"== "string"은 왜입니까?
- 21. "string"! = "string"
- 22. Python 기능에 해당하는 Java -> set (string)
- 23. Java, jboss, mysql, jdbc : string max lenght?
- 24. Java, string, sql ....... 정수와 문자열의 id 조합
- 25. 일반 String 메서드를 사용하는 Java Parser HTML?
- 26. 여기서 Java String 형식을 사용할 수 있습니까
- 27. Java : 집합의 열거 형 <String>
- 28. 지도 작성 [String, String]
- 29. ArrayAdapter - String []
- 30. StringBuffer append() 또는 String +?
알고리즘이 얼마나 복잡합니까? 너 자신을 구현하려고 계획하지 않니? Java는 컨설팅에 익숙해 져야하는 매우 광범위한 라이브러리 환경을 갖추고 있습니다. 대중적인 도서관의 대부분은 허용 된 라이센스로 무료입니다. –