2014-10-17 4 views
1

저는 지난 여름부터 파이썬을 사용 해왔고 적어도 기본 프로그래밍을 수행하는 데 충분한 정보를 흡수했다고 생각합니다.데이터를 저장하기 전에 난독 화

내가하는 일은 텍스트 기반 RPG 게임을 만들고 있으며 이미 저장 프로세스를 완료했으며 게임이 savegame.txt에 정보를 전송한다는 것입니다. 하지만 게임 해킹을 더 어렵게 만들고 싶습니다. 나는 포럼에서 파일 이름을 변경하는 것이 가능하다는 것을 알았지 만,이 사건이 충분히 가깝지 않고/또는 나는 그것이 어떻게 작동하는지 선을 통해 읽을 수 없었다. 그래서 아이디어는 읽을 수없는 형식이되지만 내부의 코드는 바뀌지 않고 '정상화'될 수 있습니다.

그래서 더 명확하게

:

이 어떻게 (그런이나 뭐) savegame.xsave 할 savegame.txt 변경 않으며, 그 반대의 경우도 마찬가지?

+4

파일 이름을 원하는대로 만들 수 있습니다. 파이썬은 확장자를 신경 쓰지 않습니다. 하지만 여전히 텍스트 파일이므로 아무 것도 완성하지 못합니다. – davidism

+2

게임을 만드는 동안이 시간을 실제로 사용할 수 있습니까? 이 초기 최적화, kludges, 해킹, tacked-on-features ... 등등에 익숙해지기 전에 게임을 마칠 때까지 기다리지 마십시오. –

+0

특정 레벨이나 세트를 테스트해야한다고 생각하면됩니다. 상황에 따라 저장 파일이 암호화되거나 난독 화되는 경우 상황을 만들 때 저장 파일을 조작하는 것이 어려울 수 있습니다 (특정 장비로 특정 레벨에 도달하려고 시도합니다!). 그런 다음 수동으로 기능을 코딩해야합니다. 게임을 만드는 데 시간을 투자하고 방어 메커니즘을 사용하지 마십시오. –

답변

1

을 그 이것은 아마도 당신의 시간을 가장 잘 사용하지는 못합니다. 하지만 가장 간단한 방법은 rot13 인코더를 이용하는 것입니다.

with open("data.secret", 'w') as f: 
    f.write("player score: 500".encode('rot13')) 
    f.write("player badge: cool guy".encode('rot13') 

with open("data.secret") as f: 
    x = f.readline().decode('rot13') 
0

모든 암호화 알고리즘을 사용하여 파일의 모든 텍스트를 암호화하면됩니다. 예를 들어 pycrypto 라이브러리를 사용할 수 있습니다.

+0

암호 해독 키가 프로그램에 포함되어야하므로 유용하지 않습니다. – davidism

+0

작업이 해킹을 불가능하게 만들지는 않습니다. 모든 것이 해킹 당할 수 있습니다. 작업은 단지 더 어렵게 만듭니다. 정확히이 작업을 위해 간단한 암호화로 충분할 것입니다. 암호화에 대해 모른다는 사람은 단지이 파일을 변경할 수 없습니다 :-) – Zav

0

그냥 읽을 텍스트 파일을 확인하려면 그냥, 예를 들어,베이스 64로 인코딩 수 있습니다 : 당신이 더 많은 읽을 수 있습니다 여기에

import base64 
encoded = base64.b64encode("myTextFileContents") 
decoded = base64.b64decode(encoded) 

: 나는이 의견에 동의 https://docs.python.org/3/library/base64.html