Est-il ok pour supprimer l'égalité des signes à partir d'une chaîne base64?

J'ai une chaîne que je suis l'encodage en base64 pour économiser de l'espace. Est-ce une grosse affaire si je supprime le signe d'égalité à la fin? Cette importante diminution de l'entropie? Que puis-je faire pour assurer la longueur de la chaîne résultante est fixe?

>>> base64.b64encode(combined.digest(), altchars="AB")
'PeFC3irNFx8fuzwjAzAfEAup9cz6xujsf2gAIH2GdUM='

Grâce.

j'ai une chaîne que je suis l'encodage en base64 pour économiser de l'espace - Base64 n'a pas d'économiser de l'espace, il fait le contraire. Il est généralement utilisé pour exprimer arbitraire séquences d'octets (en général à base ascii) de la ligne de protocoles.
Est-ce juste moi qui est surpris de lire 'string que je suis l'encodage en base64 pour économiser de l'espace"? Base64 est plus bavarde que la moyenne de votre chaîne et son utilisation plus fréquente est de transférer des données BINAIRES comme une chaîne de caractères.
donc, je ne suis pas la seule 🙂
Et aussi, s'il vous plaît ne pense pas que Base64 est de chiffrement, comme beaucoup de gens semblent le faire.
Vous ne devriez pas utiliser AB pour la altchars... base64 utilise A-Za-z0-9 pour représenter les 6 bits de valeurs 0-61, altchars sélectionne ce qui est utilisé pour les valeurs de 62 et 63. À l'aide de quelque chose qui est déjà affecté à une valeur de provoquer des erreurs de décodage... par exemple b64decode(b64encode('\x00','AB'),'AB') sera de retour '\xfb' au lieu de '\x00'. Même si vous êtes juste de hachage, que est rejet de l'entropie, bien que la suppression de rembourrage n'est pas.

OriginalL'auteur ensnare | 2012-01-26