해시는 무엇입니까?
해시는 일반적으로 텍스트 형식의 가변 길이의 데이터 문자열을 사용하여 더 짧은 고정 길이 숫자 값으로 변환하는 수학 공식입니다. 보다 빠르고 효율적인 검색을 위해 컴퓨터 데이터베이스에서 해시가 자주 사용됩니다. 또한 암호에 손상을 입히지 않고 디지털 서명을 인증하기 위해 암호화에 사용됩니다. 해시는 해시 함수의 이름으로도 사용되며 알고리즘으로 간주 될 수도 있습니다.
해시는 데이터베이스 검색을 용이하게하는 데 큰 역할을합니다. 예를 들어 이름으로 구성된 데이터베이스에서 사용자가 "John Doe"를 검색하는 경우 컴퓨터는 검색시 모든 문자를 모든 데이터베이스 항목의 문자와 일치시켜야합니다. 이름의 모든 문자는 26 개의 다른 가능성 (영어 알파벳 문자)을 가지지 만 항목의 가변 길이는 검색 속도를 느리게합니다.
반대로 해시 기능을 적용하면 컴퓨터 수명이 훨씬 쉬워집니다. 각 텍스트 문자열을 일련의 숫자로 바꾸면 컴퓨터가 각 문자를 확인할 수있는 10 가지 가능성 (숫자“0”-“9”) 만 있기 때문에 검색이 간단 해집니다. 보다 효율적으로 작업하십시오.
해시 함수가 적용된 데이터베이스에서 모든 항목에는 해당하는 고유 번호가 있습니다. 이것을 해시 키라고합니다. 이 경우, 검색 할 때 컴퓨터는 먼저 "John Doe"와 같이 작성한 입력에 해시 함수를 적용합니다.이 경우 숫자 값 (예 : "456789")이 발생합니다. 이 결과를 올바른 항목에 해당하는 해시 키와 일치시킵니다.
해시는 디지털 서명의 기능도합니다. 예를 들어, 보낸 사람 Robert는 누군가에게 문서를 보내려고하고받는 사람 Mary는 전송 중에 문서가 훼손되지 않았는지 확인하려고합니다. 보낸 사람 Robert는 해시 함수를 통해서만 문서를 실행하면 숫자 값이됩니다. 그런 다음 Robert는 해시 키를 암호화하고 암호화 된 키와 함께 문서를 보냅니다.
Mary는 두 항목을 모두 받고 해시 키를 해독합니다. 이제 문서를 보내기 전에 문서에서 얻은 숫자 값을 볼 수 있습니다. 손에 든 문서가 정확히 같은지 확인하기 위해 컴퓨터에서 해시 기능을 통해 문서를 실행합니다. 마지막으로 두 키를 비교합니다. 동일한 경우 문서가받는 사람에게 변경되지 않았습니다.
각각 고유 한 수학 공식이있는 여러 가지 해시 함수가 있습니다. 해시 함수가 작동하려면 두 데이터베이스 항목이 동일한 해시 키를 가질 때 발생하는 충돌을 최소화해야합니다. 해시 함수도 단방향이어야합니다. 즉, 데이터베이스 항목이나 문서에서 키를 생성 할 수 있지만 다른 방법으로는 키를 생성 할 수 없습니다. 즉, 해시 키에서 원본 문서를 "역 엔지니어링"할 수 없습니다.