프로그램 데이터를 텍스트 파일로 저장하는 일반적인 방법을 알고 있습니다. 문제는 누구나 텍스트 파일에 액세스 할 수 있고 조작 할 수 있다는 것입니다. 예를 들어 게임을 진행하면서 변경되는 게임 데이터를 저장하고로드하고 싶습니다. 그러한 데이터를 저장하고 게임 프로그램 내에서만 액세스 가능하게 유지하여 다른 사람들이 조작하지 못하도록하는 방법은 무엇입니까?데이터 저장 및 로딩 C++
답변
데이터를 이진 파일로 저장해야합니다. 그러나 사람들은 여전히 어쨌든 (나는 종종 Diablo2 : D에서 내 캐릭터의 스킬 포인트 또는 스탯 포인트를 변경하는 것처럼) 해시 합을 계산하고 데이터 내에 저장하는 알고리즘을 찾아야합니다.
이진 파일에 데이터를 저장할 수 있습니다. C++ 객체에서 비트를 쓰고 읽습니다.
나는 파일을 보호하려고하는 사람들이 바이너리 파일을 변환하는 방법을 알아낼 수 있다고 확신한다. 아니? – ChiefTwoPencils
글쎄, 어떻게 데이터가 쓰여질 지 모르겠다. 그가 쓰고 자하는 데이터가 2 int와 10 문자 스트링을 포함하는 구조라면 파일이 sizeof (int) + sizeof (int) + 10 * sizeof (char) 바이트가 될 것이라고 생각합니다. 그리고 만약 그것이 그의 물체에 던져진다면 그것이 의미가있는 유일한 방법이 될 것입니다. – bathtub
내가 말하는 것은 @DzungAh이 그 대답에서 말한 것과 유사합니다. 바이너리 파일에 데이터를 저장하는 것은 그 자체로 훌륭한 해결책은 아닙니다. 그것은 여전히 편집 가능할 것입니다 ... – ChiefTwoPencils
아이디어는 데이터를 사람이 읽을 수 없도록 포맷하는 것입니다. 이것은 여러 가지 방법을 사용하여 수행 할 수 있습니다.
- 데이터를 바이너리로 저장하십시오. 이렇게하면 사람이 파일을 읽기가 어려워 지므로 16 진수 편집기 나 유사한 프로그램을 사용해야합니다. 또한 하나의 값이 끝나는 곳과 다른 값이 시작되는 곳을보기 어렵게 만듭니다 (텍스트 파일에서 공백으로 표시됨). 이것의 또 다른 장점은 파일이 훨씬 작아진다는 것입니다.
- 데이터 암호화. 데이터는 다양한 방법을 사용하여 암호화 할 수 있습니다. 이것은 매우 안전한 옵션이지만 암호화가 느릴 수 있으므로 대용량 데이터의 경우 데이터 저장 /로드 속도에 따라 최적화되지 않을 수 있습니다. 또한 암호화/암호 해독 키를 어딘가에 저장하는 문제가있을 수 있습니다 (파일 자체 또는 프로그램의 상수로 저장할 수도 있음).
- 난독 화. 이것은 읽기 어렵게 만드는 것을 일컫는 광범위한 용어입니다. 예를 들어 두 문자열을 모두 읽을 수 없도록하기 위해 인터레이스 될 수 있습니다. 난독 화 (obfuscation)는 종종 정크 데이터 할당량, 프로그램에서 사용하지 않는 정보를 삽입하고 해커가되는 것을 혼동하는 역할을합니다.
- 유효성 검사. 누군가가 파일을 수정하고 자신이하는 일을 모르는 경우 프로그램에 눈에 보이는 영향을 줄 가능성이 큽니다. 이 방법으로 파일을 간단히 조작하여 프로그램이 어떻게 반응하는지 확인할 수 있습니다. 이 문제를 해결하는 한 가지 방법은 모든 데이터가 논리적 범위 내에 있는지 확인하는 것입니다. 데이터는 파일에 여러 번 저장하거나 다른 방법으로 암호화 할 수 있습니다. 데이터가 다를 경우 파일이 변조되었음을 알 수 있습니다.
- 1. 저장 및 로딩 프로그램 데이터, C# WPF
- 2. UWP Xbox One : 데이터 저장 및 로딩
- 3. MySQL - 저장 및 로딩
- 4. jQuery의 필드에서 저장 및 로딩
- 5. C# 및 메모리에 데이터 저장
- 6. 데이터 저장 및 데이터 읽기 (C 프로그래밍)
- 7. FragmentTabHost 및 비동기 로딩 데이터
- 8. 메모리 및 파일 로딩 C++?
- 9. iOS에 클라이언트 인증서 저장 및 로딩
- 10. C++에서 데이터 수신 및 저장 문제
- 11. 데이터 로딩
- 12. 데이터 로딩
- 13. 단위 로딩 및 다중 데이터 소스가있는 UnitOfWork
- 14. Excel로 데이터 저장 C#
- 15. 내부적으로 데이터 저장 C#
- 16. 데이터 로딩 소프트웨어
- 17. 텍스트 파일에 데이터 저장 및 C#의 데이터 격자에로드
- 18. iPhone 목표 C - 데이터 저장
- 19. 안드로이드 데이터 저장 및
- 20. 데이터 저장 및 검색
- 21. RestKit 및 데이터 저장
- 22. 분할 및 저장 데이터
- 23. Visual Basic : 저장, 명명, 로딩
- 24. iCalendar 이벤트 데이터를 별도의 파일로 저장 및 로딩
- 25. Spring, Thymeleaf 및 비동기 데이터 로딩
- 26. iOS의 서버에서 데이터 캐싱 및 로딩
- 27. backbone.js 컬렉션에 메타 데이터 유지 및 로딩
- 28. 레일 로딩 및 게으른 로딩
- 29. xml에서 데이터 로딩
- 30. iOS에서 설정 및 게임 진행 저장 및 로딩
균열 보호에서와 같이? –
게임의 레벨 편집기와 같습니다. 새 레벨 데이터는 저장되며 게임 프로그램 자체에서만 액세스 할 수 있습니다. – starhacker