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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top