SHA1 해시를 C 문자열로 표현하는 표준 방법이 있습니까? 어떻게 변환합니까? [c++]


Answers

해시를 표현하는 표준 방법은 16 진수 문자열입니다.
C에서 printf("%02x", byte) 를 사용하여 각 바이트의 16 진수 표현을 얻을 수 있습니다.

MD5의 예는 SHA에 맞게 적응해야합니다.

http://en.literateprograms.org/MD5_sum_(C,_OpenSSL)

Question

이 질문OpenSSL 라이브러리를 사용하여 C의 데이터 배열에서 SHA-1 해시를 만드는 방법에 관한 것입니다.

해시를 포함하는 20 바이트의 배열을 반환합니다. 바이너리가 아닌 문자열 형식으로 데이터를 표현하는 표준 방법이 있습니까?

그렇다면 OpenSSL 자체에서 해당 문자열 형식으로 변환하는 함수가 있습니까?

그렇지 않다면 어떻게해야합니까? 물론, 내 자신의 인코딩을 염두에 둘 수 있습니다, base64 또는 무엇을 사용하지,하지만 거기에 일부 정식 형식입니까?




Privacy Enhanced Mail (또는 PEM)은 암호 데이터의 텍스트 표현을 저장하기위한 표준을 설정하는 것처럼 보였습니다. PEM은 실제 바이너리 청크를 Base64에 저장하지만 텍스트 머리글과 바닥 글도 가지고 있습니다.