Decodifica Base64 - lunghezza stringa errata
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?
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.