SHA-1 해시 함수 설명

SHA-1은 미국 국가안보국(National Security Agency)에서 설계한 암호학적 해시 함수입니다. 이 함수는 여러 널리 사용되는 애플리케이션과 프로토콜에서 사용되며, 특히 Git과 같은 버전 관리 시스템에서 파일 변경 사항을 확인하는 데 사용됩니다.

SHA-1 기능

SHA-1 함수는 입력으로 UTF-8 문자열을 받아들이며, 160비트 메시지 다이제스트를 ASCII 형식으로 반환합니다. 예를 들어:

  • 입력 문자열: "The quick brown fox jumps over the lazy dog"
  • 출력 해시: "2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12"

이렇게 생성된 해시는 외부 서버와의 정보 전송 시 무결성을 확인하는 데 사용될 수 있습니다.

주의사항

  • SHA-1 인코딩에는 UTF-8과 유니코드 두 가지 형식이 있습니다. 다양한 서버 설정과의 통신을 용이하게 하기 위해 제공되지만, 가장 일반적으로 사용되는 것은 유니코드입니다.
  • SHA-1은 완전히 안전하지 않으며, 취약점이 발견될 수 있습니다. 더 많은 정보는 관련 페이지를 참조하세요.

구문

sha1_string_utf8(string)

인수 설명

인수 유형 설명
string 문자열 해시할 문자열

반환값

  • 해시된 문자열

활용 예제

다음은 SHA-1 해시 함수를 사용하는 몇 가지 예제입니다.

예제 1: JSON 문자열 해시 생성

var hash, str;
str = json_encode(hiscore_map);
hash = sha1_string_utf8(str);
ini_open("local.ini");
ini_write_string("info", "0", hash);
ini_close();

위 코드는 DS 맵을 JSON 문자열로 인코딩한 후, SHA-1 해시를 생성하여 ini 파일에 저장합니다. 이후 동일한 정보를 서버에서 받을 경우 JSON의 무결성을 확인하는 데 사용할 수 있습니다.

예제 2: 서버에 데이터 전송

get[0] = http_post_string("http://www.MacSweeneyGames.com/CatchTheHaggis?game_hiscores=" + string(global.game_id), str);

이 코드는 JSON 문자열을 서버에 전송하는 예제입니다. 해시를 사용하여 데이터의 무결성을 확인할 수 있습니다.

예제 3: 해시 비교

var received_hash = "2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12";
if (hash == received_hash) {
    // 데이터 무결성이 확인됨
}

이 코드는 수신한 해시와 생성한 해시를 비교하여 데이터의 무결성을 확인하는 방법을 보여줍니다.