Base64 decodificação - comprimento de cadeia incorrecto
Pergunta
Eu estou tentando decodificar string com openssl base64-codificado. No entanto, ele funciona apenas 4 vezes em 5.
string Decoded deve ser sempre 64 caracteres de comprimento. BIO_read () sempre retorna 64. No entanto, tampão às vezes retornado é menor do que 64!
Todas as idéias que está errado? Como eu sempre pode obter a seqüência correta?
Solução
Você está usando str [n] cpy? Você não pode! Base64 codificado de dados pode conter caracteres nulos, os quais C funções de processamento de cadeia interpretar como fim-de-corda.
Use memcpy em vez de str [n] cpy, memcmp em vez de strcmp, etc. Essas funções exigem que você sabe que seu tamanho de dados, mas eu acredito que você não conhecê-lo.
Além disso, se você não está muito confiante sobre cordas de estilo C e tal, de há muita informação para ser encontrada sobre o assunto aqui.