인코딩 및 해싱

외부 파일을 다룰 때, 최종 사용자가 파일의 정보를 열어보고 변경할 가능성이 항상 존재합니다. 이로 인해 게임의 요소가 깨지거나 온라인에서 부정한 점수가 발생할 수 있습니다. 이를 방지하기 위해 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);