2012-04-20 3 views
7

Google은 현재 웹 API를 디자인 중이며 승인을 진행 중입니다. 우리는 (대부분) amazons implementation을 따라 갔지만, 나는 완전히 이해하지 못하는 부분이 있습니다.base64가 API 인증 키를 인코딩하는 이유

즉, 결과 hmac을 base64로 인코딩 할 때 요점은 무엇입니까? 길이의 차이는 대부분의 사이트에서 무시할 수 있습니다. 아마도 아마존은 그 차이를 눈치 챘을 것입니다. 그게 유일한 이유입니까? 아마도 ascii/unicode와 관련이 있을까요?

답변

13

해시 알고리즘과 HMAC는 많은 사람들이 믿는 경향이있는 16 진수 문자열 출력을 제공하지 않습니다. 둘 다 이진 데이터를 출력합니다. Base64는 이진 데이터를 문자열로 쉽고 이식 가능하게 표현할 수있는 방법을 제공합니다.

이유는 무엇보다도 소프트웨어의 여러 부분간에 표준 인코딩을 사용하는 것이 편리 할 수 ​​있습니다. 널리 사용되는 인코딩 이외의 특별한 것은 없습니다.

+4

답변에 암시 적으로 나타나는 점은 클라이언트에서 일반적으로 RESTful 웹 서비스를 실행하는 서버로 API 키를 전달해야하며 일반적으로 HTTP를 통해 문자열을 사용한다는 점입니다. 따라서 API 키를 HTTP를 통해 이러한 서비스에 전달하려면 어떻게 든 인코딩해야하며 base64는 그 목적으로 인기있는 옵션입니다. – jeffsix

+0

+1 Base64를 사용하는 것이 더 적합한 경우의 좋은 예입니다. HTTP 항목을 자주 사용하지 않으므로 추가해 주셔서 감사합니다. –