2010-01-23 2 views
4

Vraiment confus - Je suppose qu'il s'agit d'un placement d'un seul caractère à la fin, ou d'un éventuel rembourrage fait avec un résumé de base que je ne connais pas ..?Pourquoi la chaîne base64 calculée en ligne de commande est-elle différente de la chaîne base64 calculée par curl?

Donc, si j'exécute, vous pouvez voir le produit du encode base64:

echo '[email protected]:password' | openssl enc -base64 
aG9zdEBtYWlsLmNvbTpwYXNzd29yZAo= 

Maintenant, si je fais une demande boucle:

curl -v -u [email protected]:password https:// 
aG9zdEBtYWlsLmNvbTpwYXNzd29yZA== 

Vous remarquerez que la les chaînes de base64 ne sont pas les mêmes ..haha quoi? La ligne de commande base64 est en fait incorrecte - si vous la remplacez par la requête, elle échoue. SO - le résumé de base n'utilise-t-il PAS vraiment une chaîne base64? Je remarque que ça fait toujours un o = au lieu de == à la fin de la chaîne ...

Et des idées?

EDIT: Alors, ce fut le retour à la ligne de fuite de l'écho: -n ne produisent pas la nouvelle ligne de fuite

Merci!

Répondre

7
>>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZA=='.decode('base64') 
'[email protected]:password' 
>>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZAo='.decode('base64') 
'[email protected]:password\n' 

Essayez à la place echo -n.

+0

echo -n "[email protected]: mot de passe" | openssl enc -base64 aG9zdEBtYWlsLmNvbTpwYXNzd29yZA == ... ne semble pas fonctionner. –

+0

>>> 'aG9zdEBtYWlsLmNvbTpwYXNzd29yZA =='. Decode ('base64') \ '[email protected]: mot de passe' ... Ça me va ... –

+0

DOH - désolé - le comparait avec l'utilisateur actuel: pass . heh, ça marche super, merci! –

Questions connexes