PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Windev20 - Documentation de Windev20 ou un coup de main pour encoder en Base64
Windev20 - Documentation de Windev20 ou un coup de main pour encoder en Base64
Débuté par priv!t7vyyn7zrMt7vyyn7zrznv510+s4, 10 déc. 2024 08:03 - 3 réponses
Posté le 10 décembre 2024 - 08:03
Bonjour à toutes et tous,

Je reprends une application qui a été développée en Windev 20.

Pour faire des appels d'API, le fournisseur me demande maintenant de mettre en place une Authorization de type Basic, c'est à dire que derrière je dois encoder un username:password en Base64.

Seulement, Windev 20, ça fait une paie, j'ai un peu oublié et je n'arrive pas à trouver de fonction qui permette d'encoder en Base64. J'ai voulu accéder à la documentation, mais elle ne commence qu'à partir de la version 24...

Est-ce que quelqu'un aurait cette version de la documentation ou bien pourrait me dire comment faire pour cet encodage?

Merci beaucoup pour votre aide :)

Bien cordialement,

Guillaume
Membre enregistré
455 messages
Posté le 10 décembre 2024 - 09:32
Bonjour,

Pour accéder à la documentation de votre version, vous pouvez activer l'aide locale plutôt que l'aide en ligne (Options générales de WinDev, onglet "Aide").

En WinDev 20, on peut faire un encodage en base 64 via la fonction Crypte :
sMaBase64 est une chaîne = Crypte(sMaChaineDeBase,"",crypteAucun,encodeBASE64)
Membre enregistré
141 messages
Posté le 10 décembre 2024 - 15:03
Bonjour

Je vois votre problème, vous avez crypter un message en base 64, dans notre époque, nous utilisons soit des bases 128 bits | soit des bases 256 bits, j'ai une solution pour vous

1. Vous devrez crypter le message par 128 bits ou par 256 bits ce que vous voulez

Voilà un code dont vous pourrez utiliser

// EDD (12/24) : Créer les champs suivant :
// EDD (12/24) : Deux boutons (Cryptage | Décryptage) BTN_Crypte | BTN_Decrypte
// EDD (12/24) : Deux champs de saisie (Cryptage | Décryptage) SAI_Message | SAI_Message_Crypte
// EDD (12/24) : Un comboliste CMB_Modele avec les listes "HA_MD5_128" | "HA_SHA3_256"
// EDD (12/24) : Un champ mot de passe pour raison de sécurité (clé) SAI_Clé

Vous devrez coder ce programme

// EDD (12/24) : Evènement du clique de bouton BTN_Crypte
LOCAL
bfBuffer, bfCle, bfCrypte is Buffer
eEntier is entier = ListeSelect(CMB_Modele)
IF NoSpace(SAI_Message) = "" THEN
Info("Merci de remplir le champ de saisie du message s'il vous plaît.")
ELSE IF NoSpace(SAI_Clé) = "" THEN
Info("Merci de remplir le clé du message s'il vous plaît.")
ELSE
bfBuffer = SAI_Message
SWITCH CMB_Modele[eEntier].ValeurAffichée
CASE "HA_MD5_128" :
bfCle = HashChaîne(HA_MD5_128, SAI_Clé)
bfCrypte = CrypteStandard(bfBuffer, bfCle, crypteAES128)
CASE "HA_SHA3_256" :
bfCle = HashChaîne(HA_SHA3_256, SAI_Clé)
bfCrypte = CrypteStandard(bfBuffer, bfCle, crypteAES256)
OTHER CASE :
END
SAI_Message_Crypte = bfCrypte
Info("Cryptage réussie : " + RC + SAI_Message_Crypte)
END

// EDD (12/24) : Evènement du clique de bouton BTN_Decrypte
LOCAL
bfBuffer, bfCle, bfDecrypte is Buffer
eEntier is entier = ListeSelect(CMB_Modele)
IF NoSpace(SAI_Message_Crypte) = "" THEN
Info("Merci de remplir le champ de saisie du message crypter s'il vous plaît.")
ELSE IF NoSpace(SAI_Clé) = "" THEN
Info("Merci de remplir le clé du message s'il vous plaît.")
ELSE
bfBuffer = SAI_Message_Crypte
SWITCH CMB_Modele[eEntier].ValeurAffichée
CASE "HA_MD5_128" :
bfBuffer = SAI_Message_Crypte
bfCle = HashChaîne(HA_MD5_128, SAI_Clé)
bfDecrypte = DécrypteStandard(bfBuffer, bfCle, crypteAES128)
CASE "HA_SHA3_256" :
bfCle = HashChaîne(HA_SHA3_256, SAI_Clé)
bfDecrypte = DécrypteStandard(bfBuffer, bfCle, crypteAES256)
OTHER CASE :
END
Info("Décryptage réussie : " + RC + bfDecrypte)
END

NB : Pour le cas de 64 bits vous devrez remplacer soit par 128 bits | soit par 256 bits, deplus ce cryptage ci - dessus est efficace

Cordialement
Mr.RATSIMANDRESY
Niry Aina Eddy
Membre enregistré
141 messages
Posté le 10 décembre 2024 - 15:05




: Cryptage d'un message de 128 bits | de 256 bits