2017-05-13 6 views
0

... 나는 그것이 무엇인지 물어보고 잘하면 alrady 질문을하지 않으려합니다. (인터넷에서 검색했습니다. 일주일에 찾지 못했습니다 ... 긴 책의 어딘가에 숨겨져 있다는 것을 알고 있습니다 ... 그래서 여기 있다면 저를 실로 안내해주십시오 ...해시 함수 (예 : MD5, SHA)가 사용하는 문자 집합은 무엇입니까?

... 나는하고 싶습니다. 어떤 문자 기반인지 알고 싶습니다 ... 또는 MD5, SHA와 같은 해시 함수에서 사용되는 문자베이스와 정확히 어떻게 다른지 알고 싶습니다 ... 예를 들어 base64, ascii, extended ascii ...를 사용하는 것은 무엇입니까? 예를 들어 그것을 인코딩하는 alt 444 (╝)를 인코딩하려고 시도하지만 무한한 문자가 몇 개까지 사용될 수 있는지에 대한 제한이 있어야합니다. 그렇지 않으면 해시가 고유하지 않을 수 있습니다. 맞습니까? 그리고 이러한 알고리즘을 사용하는 많은 사이트에서만 base64 문자 풀을 사용할 수 있습니다 ... 제발 ... 도와주세요 ... 감사합니다.

답변

0

해시 알고리즘은 바이트 묶음을 취하고 해시를 계산하고 바이트. 입력 내용이 짧은 인코딩 된 텍스트이거나 큰 바이너리 파일 인 경우에는 문제가되지 않습니다.

해시 함수 및 프로그래밍 환경의 구현에 따라 문자열이 바이트 배열로 변환되는 방식에 따라 다릅니다. 같은 방식으로 항상 수행되는 한 해시는 비교할 수 있습니다. 크로스 플랫폼 해시가 필요한 경우 먼저 문자열을 바이트 배열 (바람직하게는 UTF-8로 인코딩)로 변환 한 다음 해시에 제공하는 것이 좋습니다.

출력은 종종 해시의 16 진수 표현이지만, 때로는 이진 출력을 요청할 수도 있습니다. SHA-256

SHA256("hello") = "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" 
  • 반환 256 비트와 동일한 32 바이트, 따라서 이름 SHA-256

    예.

  • 32 바이트는 16 진수로 인코딩되며, 모든 바이트는 2 자의 16 진수로 표시됩니다 (2c는 44로 1 바이트를 의미 함).
+0

괜찮아요, 이해합니다. 인코딩에 사용 된 char 풀을 알고 있어야합니다.이 경우 UTF-8 ... 감사합니다. – trollington2