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) {
// 데이터 무결성이 확인됨
}
이 코드는 수신한 해시와 생성한 해시를 비교하여 데이터의 무결성을 확인하는 방법을 보여줍니다.