PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Traduction sricpt NodeJS en Windev
Traduction sricpt NodeJS en Windev
Débuté par EJ, 19 mai 2025 17:54 - 2 réponses
Membre enregistré
35 messages
Posté le 19 mai 2025 - 17:54
Bonjour,
Je dois transformer ce code NodeJS en Windev afin de pouvoir consommer une API
Voici le code NodeJS
const crypto = require('crypto');

const apiSecret = 'TWFDbGVBUElhTW9p';
const requestPath = '/ext/tests';
const nonce = Date.now();
console.log(nonce);

const secretBuffer = Buffer.from(apiSecret, 'base64');
const hmac = crypto.createHmac('sha512', secretBuffer);
hmac.update(requestPath + nonce, 'binary');
const apiSign = hmac.digest('base64');
console.log(apiSign);


Le résultat est : ZNbCGqCeGtPa8lxRaGm4uOiSLAAyJrSO+bbgcvgapGOvvMwpZ0eEIhwo8ou11p5Y4aOOQqZbQ5p3NyEEJffHJQ==

En Windev, je n'arrive pas à retranscrire le hmac
sapiSecret est une chaîne = "TWFDbGVBUElhTW9p"
sRequestPath est une chaîne = "/ext/tests"
sNonce est une chaîne = "1747669773112"

secretBuffer est un chaîne = BufferVersHexa(Decode(sapiSecret,encodeBASE64),SansRegroupement)
sCrypte est une Buffer = sRequestPath+sNonce

hmac est un Buffer = HashChaîne(HA_HMAC_SHA_512,secretBuffer)
MonBuf est un Buffer = Crypte(sCrypte,hmac)


Si quelqu'un a déjà le cas je suis preneur ?

Merci
Membre enregistré
488 messages
Posté le 20 mai 2025 - 13:30
Bonjour,

Il y a beaucoup de lignes qui ne sont pas nécessaires. Le BufferVersHexa() n'est pas nécessaire (HashChaine accepte un buffer en tant que clé secrète), tout comme le Crypte() à la fin.

sapiSecret est une chaîne ANSI = "TWFDbGVBUElhTW9p"
sRequestPath est une chaîne ANSI = "/ext/tests"
sNonce est une chaîne ANSI = "1747669773112"

bufClé est un buffer = Decode(sApiSecret, encodeBASE64)

hmac est un Buffer = HashChaîne(HA_HMAC_SHA_512,sRequestPath+sNonce,bufClé)

RENVOYER Encode(hmac,encodeBASE64SansRC)
Membre enregistré
35 messages
Posté le 21 mai 2025 - 09:48
Merci beaucoup @bchanudet, je me suis compliqué la vie inutilement.