Encodé/décodé

Fermé
Tobino49 Messages postés 6 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 8 septembre 2021 - Modifié le 28 août 2021 à 03:02
 vortex - 28 août 2021 à 20:35
Je voudrai décodé une suite de caractère. je pensais utilisé la base64 sauf qu'elle encode/décode c'est caractères UTF-8:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789+/"

sauf que les chaines que je voudrais décodés contiennent :
"ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789-_"

si quelqu'un avait une idée de l'encodage utilisé ça m'aiderais vraiment

Est-ce un hash qui est utilisé ?
A voir également:

4 réponses

NHenry Messages postés 15186 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 janvier 2025 352
28 août 2021 à 12:07
Ben tu n'as qu'à remplacer les 2 caractères qui te déranges après avoir encoder et avant de décoder.
0
Tobino49 Messages postés 6 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 8 septembre 2021
28 août 2021 à 13:14
même sans les tirets (- _) le décodage est invalide il n'est donc pas encodé en base64
0
Bonjour,

As-tu regardé la doc de base64 ?
Tu pourrais voir, qu'il y a un second paramètre.

b64encode(s, altchars=None)
Encode the bytes-like object s using Base64 and return a bytes object.

Optional altchars should be a byte string of length 2 which specifies an
alternative alphabet for the '+' and '/' characters. This allows an
application to e.g. generate url or filesystem safe Base64 strings.
(END)


Ce qui correspond bien aux caractères étant remplacés alternativement dans ta chaîne.

A toi de fournir ce second paramètre qui est aussi valable pour b64decode.

EDIT:

Désolé j'ai cru que c'était sur le forum python...
0
Tobino49 Messages postés 6 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 8 septembre 2021
Modifié le 28 août 2021 à 16:17
c'est pour du python ? bah en vrai ça m'arrange. Mais du coup j'ai pas compris comment on les changeaient. Je n'ai jamais bossé sur du python peut tu m'aider/m'orienter ?

EDIT :
"base64.b64decode(s, altchars=None, validate=False)
Décode un objet octet-compatible ou une chaîne de caractères ASCII s encodée en base64 et renvoie les bytes décodés.

L'option altchars doit être un bytes-like object de longueur au moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet alternatif pour les délimiteurs + et /.

Une exception binascii.Error est levée si s n'est pas remplie à une longueur attendue.

Si validate est False (par défaut), les caractères qui ne sont ni dans l'alphabet base64 normal, ni dans l'alphabet alternatif, sont ignorés avant la vérification de la longueur du remplissage. Si validate est True, les caractères hors de l'alphabet de l'entrée produisent une binascii.Error."

j'ai aussi trouvé ça mais que dois-je rentré en paramètre de la function pour modifier les 2 caractères
0
Bah
s
est bien entendu la chaîne à décoder, et althars au choix entre un bytes
'-_'.encode('utf-8')
ou un bytearray
bytearray('-_', 'utf-8')
.
0
Tobino49 Messages postés 6 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 8 septembre 2021
Modifié le 28 août 2021 à 17:12
merci mais la chaîne que je dois décoder ne doit pas être encodé en base64 car même avec ce que tu m'as donné le programme fonctionne mais le décodage ne donne rien
0
D'où provient cette chaîne ? Parce que sans indice sur la façon dont elle a été encodée, ça va être impossible de trouver.
0