Question

J'essaie de décoder une chaîne encodée en base64 avec openssl. Cependant, cela ne fonctionne que 4 fois sur 5.

La chaîne décodée doit toujours comporter 64 caractères. BIO_read () renvoie toujours 64. Toutefois, le tampon renvoyé est parfois inférieur à 64!

Des idées sur ce qui ne va pas? Comment puis-je toujours obtenir la chaîne correcte?

Était-ce utile?

La solution

Utilisez-vous str [n] cpy? Tu ne peux pas! Les données codées en Base64 peuvent contenir des caractères nuls, ce que les fonctions de traitement de chaîne C interprètent comme une fin de chaîne.

Utilisez memcpy au lieu de str [n] cpy, memcmp au lieu de strcmp, etc. Ces fonctions vous obligent à connaître la taille de vos données, mais je crois que vous le connaissez .

De même, si vous n'êtes pas très sûr des chaînes de style C, vous trouverez ici de nombreuses informations sur le sujet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top