PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV (versiones precedentes) → HmacSHA256 + Encodage Base64 URLSafeString
HmacSHA256 + Encodage Base64 URLSafeString
Iniciado por stephane, 15,abr. 2021 20:11 - 3 respuestas
Publicado el 15,abril 2021 - 20:11
Bonjour à tous,

Je cherche à transcrire ce code Java en WLangage sur WEBDEV 25 :

Mac sha256HMAC = Mac.getInstance("HmacSHA256");
sha256HMAC.init(new SecretKeySpec("663768ff68ad8ea6768bbf65163e9b0a".getBytes("UTF-8"), "HmacSHA256"));
Base64.encodeBase64URLSafeString(sha256HMAC.doFinal("10000065&100016&panier-33455&42556&500".getBytes("UTF-8")));

le résultat doit être : mfy6VhbdyiErpfvQ3AvnKwU39W_ae9MfuaVurEg-KjE

Quelqu'un aurait-il une idée car je sèche !

Merci bien à vous
Miembro registrado
81 mensajes
Popularité : +7 (7 votes)
Publicado el 15,abril 2021 - 21:45
Bonjour,

Voilà :

sKey is string = "663768ff68ad8ea6768bbf65163e9b0a" // Clé à utiliser.
sURL is string = "10000065&100016&panier-33455&42556&500" // URL à hasher.
Trace(Encode(HashString(HA_HMAC_SHA_256, sURL, sKey), encodeBASE64))


Résultat du trace : mfy6VhbdyiErpfvQ3AvnKwU39W/ae9MfuaVurEg+KjE=

C'est le même résultat sauf le "/" est remplacé par "_" et le "+" est remplacé par "-".

Est-ce que c'est un simple appel à la fonction "Replace" pour éviter certains caractères spécieux dans l'URL ou encore autre chose ?

Je te laisse creuser pour le découvrir :)
Publicado el 15,abril 2021 - 22:41
Un grand merci à DREAM-TECH !

J'ai trouvé pour le problème des caractères remplacés... Je fais un encodeBASE64URL au lieu d'un encodeBASE64.

Reste plus qu'a voir pour le "=" à la fin

Encore merci
Miembro registrado
81 mensajes
Popularité : +7 (7 votes)
Publicado el 16,abril 2021 - 17:24
hmm,

Je pense le signe "=" fait vraiment partie du résultat de l'encodage et supprimé par la suite.

Ce caractère est souvent supprimé car réservé à l'affectation des valeurs (paramètres/variables) de l'URL.

Un peu comme l'histoire de certains caractères remplacés mais je pense le "=" est simplement supprimé.