저는 Java로 게임을 쓰고 있습니다. 게임을 저장하고 싶습니다. XML 문서를 zip 파일로 저장하려고합니다. 내가 알고 싶은 것은 사용자가이 파일을 편집하거나 찾을 수 없도록 투명하게 수행 할 수있는 방법인지 여부입니다. 나는 파일을 숨김으로 만드는 것에 대해 생각해 왔지만, 그렇게하려면 더럽고 추악한 방법처럼 보인다. 숨겨진 파일에 대해 가장 좋아하는 점은 시스템간에 호환되지 않는 것입니다. 어쨌든 파일을 항아리에 저장하고 읽을 수 있다면 똑같이 받아 들일 수 있습니다. 또한 숨겨진 파일을 만들기 위해 Java에서 좋은 방법처럼 보이지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다.애플리케이션 데이터를 투명하게 저장합니다.
0
A
답변
0
내가 알고 싶은 것은 사용자가이 파일을 편집하거나 찾을 수 없도록 투명하게 처리 할 수 있는지 여부입니다.
궁극적으로, 아니오.
로컬 컴퓨터에 상태를 저장하는 작업은 궁극적으로 리버스 엔지니어링 될 수 있으며 권한있는 사용자가 해당 상태를 검색 할 수 있습니다.
그러나 사람들이 "속이기"어렵게 만들 수있는 다양한 일이 있습니다. 예를 들어 파일을 암호화하거나 시드 된 해시를 생성하여 "땜질"을 감지 할 수 있습니다. 자바 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) 자바의 이전 버전에
외부 Windows 응용 프로그램을 호출하거나 네이티브 라이브러리를 호출 할 필요 그것을하기 위해. 그러나 참고 :
- "숨겨진"파일은
- 는 서로 다른 플랫폼에서 다르게 작동보고 귀찮게하지 않은 사용자로부터 숨겨져 있습니다; 예 : Linux/Unix 기반 시스템의 경우 "숨김"은 파일 이름이 "."로 시작한다는 것을 의미합니다.
관련 문제
- 1. 그룹 데이터를 Gridview 창에 저장합니다. 앱을 저장합니다.
- 2. addressbookUI 데이터를 배열에 저장합니다.
- 3. 캐시 데이터를 로컬에 저장합니다.
- 4. 살아있는 데이터를 Mongodb에 저장합니다.
- 5. iphone에 데이터를 로컬로 저장합니다.
- 6. 위임으로 데이터를 자동으로 저장합니다.
- 7. 데이터를 효율적으로 저장합니다.
- 8. 데이터를 효율적으로 저장합니다 (해시)
- 9. 오프라인 모드에서 데이터를 저장합니다.
- 10. JSON 데이터를 db에 저장합니다.
- 11. 데이터를 여러보기에 걸쳐 저장합니다.
- 12. 파일 데이터를 배열에 저장합니다.
- 13. 인터넷에서 다운로드 한 데이터를 저장합니다.
- 14. NSArray에서 데이터를 구문 분석에 저장합니다.
- 15. jquery json 데이터를 데이터베이스에 저장합니다.
- 16. spotify api에서 메타 데이터를 저장합니다.
- 17. iis 세션 데이터를 디스크에 저장합니다.
- 18. AJAX가 onbeforeunload를 호출하여 데이터를 저장합니다.
- 19. 페이팔은 데이터베이스에 사용자 데이터를 저장합니다.
- 20. 사용자 입력을 요청하고 데이터를 저장합니다.
- 21. 데이터베이스에 다양한 양의 데이터를 저장합니다.
- 22. FormsAuthentication.SetAuthCookie는 어떤 위치에 데이터를 저장합니다.
- 23. 파일에서 레코드 데이터를 레코드에 저장합니다.
- 24. 배열의 데이터를 배열의 matlab에 저장합니다.
- 25. json을 사용하여 sharedpreferences에 데이터를 저장합니다.
- 26. 파일의 데이터를 구조체 배열에 저장합니다.
- 27. 서버에서 android 데이터를 데이터베이스에 저장합니다.
- 28. Java가 LinkedList의 데이터를 파일로 저장합니다.
- 29. 모든 애플리케이션 보유자에게 데이터를 전송하는 Android 애플리케이션
- 30. 모든 애플리케이션 데이터를 지우시겠습니까?
개체 직렬화를 사용하면 어떨까요? 결과는 편집하기가 어렵지만 불가능하지는 않습니다. –
나도 알아하지만 저장 폴더를 만들어야 만하고 버전 간 호환성에 대해 걱정할 필요가있다. 한 번에 한 개 이상의 객체를 동시에 작성하고 있지만 XML을 사용하여 XMLEncoder를 사용하여 내 객체를 직렬화하고 모두 저장한다. XML 파일을 zip으로 변환합니다. –
XML 형식을 사용할 수는 있지만 소금에 절인 해시를 넣으면 플레이어가 직접 편집 할 수 없으므로 잠재적으로 손상시킬 수 있습니다. – jeff