문제

OpenSSL로 Base64- 인코딩 된 문자열을 해독하려고합니다. 그러나 5 개 중 4 배만 작동합니다.

디코딩 된 문자열은 항상 64 숯이되어야합니다. bio_read ()는 항상 64를 반환합니다. 그러나 때로는 반환 된 버퍼가 64보다 짧습니다!

어떤 아이디어가 잘못 되었습니까? 항상 올바른 문자열을 어떻게 얻을 수 있습니까?

도움이 되었습니까?

해결책

str [n] cpy를 사용하고 있습니까? 할 수 없어! Base64 인코딩 된 데이터에는 널 문자가 포함될 수 있으며,이 문자열 처리 함수는 문자열 끝으로 해석합니다.

strcmp 대신 str [n] cpy 대신 memcpy를 사용하십시오. 하다 그것을 알고.

또한 C 스타일 문자열에 대해 확신이 없다면 여기에 주제에 대한 정보가 많이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top