Domanda

Sto cercando di decodificare la stringa con codifica base64 con openssl. Tuttavia, funziona solo 4 volte su 5.

La stringa decodificata dovrebbe sempre essere lunga 64 caratteri. BIO_read () restituisce sempre 64. Tuttavia, a volte il buffer restituito è più corto di 64!

Qualche idea di cosa non va? Come posso sempre ottenere la stringa corretta?

È stato utile?

Soluzione

Stai usando str [n] cpy? Non puoi! I dati codificati Base64 possono contenere caratteri null, che le funzioni di elaborazione della stringa C interpretano come end-of-string.

Usa memcpy invece di str [n] cpy, memcmp invece di strcmp, ecc. Queste funzioni ti richiedono di conoscere la dimensione dei tuoi dati, ma credo che lo sai .

Inoltre, se non sei molto sicuro delle stringhe in stile C e simili, qui troverai molte informazioni sull'argomento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top