인코딩 및 해싱
외부 파일을 다룰 때, 최종 사용자가 파일의 정보를 열어보고 변경할 가능성이 항상 존재합니다. 이로 인해 게임의 요소가 깨지거나 온라인에서 부정한 점수가 발생할 수 있습니다. 이를 방지하기 위해 GameMaker는 기본적인 인코딩 함수와 문자열 및 파일의 무결성을 확인하기 위한 해싱 체크 함수를 제공합니다. 또한 JSON 형식의 문자열을 인코딩 및 디코딩하는 함수와 ZIP 파일을 생성하는 함수도 제공됩니다.
인코딩과 해싱의 차이
인코딩은 암호화가 아닙니다! Base64 인코딩은 파일을 육안으로 읽을 수 없게 만들지만, 해킹으로부터 안전하지는 않습니다. 사용자가 디코딩하기 위해 노력해야 하며, 자신의 암호화 방법과 함께 사용하는 것이 좋습니다. 인터넷에는 GameMaker에서 사용할 수 있는 다양한 암호화 방법과 스크립트 함수가 있습니다.
함수 참조
카테고리 | 함수 |
---|---|
JSON | json_stringify , json_parse , json_encode , json_decode |
Base64 | base64_encode , base64_decode |
해싱 | md5_string_utf8 , md5_string_unicode , md5_file , sha1_string_utf8 , sha1_string_unicode , sha1_file |
CSV | load_csv |
ZIP 파일 | zip_unzip , zip_unzip_async , zip_create , zip_add_file , zip_save |
인코딩 및 해싱 버퍼 | buffer_md5 , buffer_sha1 , buffer_crc32 , buffer_base64_encode , buffer_base64_decode , buffer_base64_decode_ext |
활용 예제
JSON 사용 예제
var jsonData = json_stringify(data);
var parsedData = json_parse(jsonData);
Base64 인코딩 및 디코딩 예제
var encoded = base64_encode("Hello World");
var decoded = base64_decode(encoded);
해싱 예제
var md5Hash = md5_string_utf8("Hello World");
var sha1Hash = sha1_string_utf8("Hello World");
CSV 파일 로드 예제
var csvData = load_csv("data.csv");
ZIP 파일 생성 및 추가 예제
zip_create("archive.zip");
zip_add_file("archive.zip", "file.txt");
zip_save("archive.zip");
버퍼 해싱 예제
var buffer = buffer_create(1024, buffer_grow, 1);
buffer_md5(buffer);