Base64 디코딩 - 잘못된 문자열 길이
문제
OpenSSL로 Base64- 인코딩 된 문자열을 해독하려고합니다. 그러나 5 개 중 4 배만 작동합니다.
디코딩 된 문자열은 항상 64 숯이되어야합니다. bio_read ()는 항상 64를 반환합니다. 그러나 때로는 반환 된 버퍼가 64보다 짧습니다!
어떤 아이디어가 잘못 되었습니까? 항상 올바른 문자열을 어떻게 얻을 수 있습니까?
해결책
str [n] cpy를 사용하고 있습니까? 할 수 없어! Base64 인코딩 된 데이터에는 널 문자가 포함될 수 있으며,이 문자열 처리 함수는 문자열 끝으로 해석합니다.
strcmp 대신 str [n] cpy 대신 memcpy를 사용하십시오. 하다 그것을 알고.
또한 C 스타일 문자열에 대해 확신이 없다면 여기에 주제에 대한 정보가 많이 있습니다.
제휴하지 않습니다 StackOverflow