45 votes

Convertir la liste des codes ASCII en chaîne (tableau d’octets) en Python

J’ai une liste de valeurs ASCII entières que je dois transformer en chaîne (binaire) à utiliser comme clé pour une opération de chiffrement. (Je réimplémente le code crypto java en python)

Cela fonctionne (en supposant une clé de 8 octets) :

Cependant, je préférerais ne pas avoir la longueur de la clé et la liste des paramètres unpack() codées en dur.

Comment puis-je implémenter cela correctement, étant donné une liste initiale d’entiers ?

Merci!

58voto

Scott Griffiths Points 8867

Pour Python 2.6 et versions ultérieures, si vous avez affaire à des octets, alors a `` est le choix le plus évident:

Pour moi, c’est encore plus direct que la réponse d’Alex Martelli - toujours pas de manipulation de chaîne ou `` d’appel, mais maintenant vous n’avez même pas besoin d’importer quoi que ce soit!

51voto

Alex Martelli Points 330805

Je préfère de loin le `` module au module pour ce genre de tâches `` (celles impliquant des séquences de valeurs homogènes) :

pas `` besoin d’appel, pas de manipulation de chaîne, etc . - rapide, simple, direct, pourquoi préférer une autre approche?!

48voto

Piet Delport Points 4649

C’est raviver une vieille question, mais dans Python 3, vous pouvez simplement utiliser `` directement:

7voto

katrielalex Points 40655
key = "".join( chr( val ) for val in myList )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X