Frage

Ich versuche, Base64-codierte Zeichenfolge mit OpenSSL zu entschlüsseln. Aber es funktioniert nur 4-mal von 5.

Decoded Zeichenfolge sollte immer 64 Zeichen lang sein. BIO_read () liefert immer 64 Aber manchmal zurück Puffer sind kürzer als 64!

Alle Ideen, was ist falsch? Wie kann ich immer die richtige Zeichenfolge bekommen?

War es hilfreich?

Lösung

Sind Sie mit str [n] cpy? Sie können nicht! Base64 codierten Daten können Null-Zeichen enthalten, die C-String-Verarbeitungsfunktionen als End-of-Zeichenkette interpretieren.

Verwenden Sie Memcpy statt str [n] cpy, memcmp statt strcmp usw. Diese Funktionen, die Sie benötigen, um Ihre Datengröße zu wissen, aber ich glaube, dass Sie Sie wissen es.

Auch wenn Sie über C-Strings nicht sehr sicher sind, und so gibt es eine Fülle von Informationen über das Thema hier gefunden werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top