FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Webservice rest Amazon - signature
Webservice rest Amazon - signature
Débuté par Mike, 01 nov. 2017 10:51 - 6 réponses
Connectez-vous…
Mike
#1
Membre enregistré
11 messages
Posté le 01 novembre 2017 - 10:51
Bonjour à tous,
Pour mon projet je vais avoir besoin de consommer le webservice rest d'amazon et pour se faire Amazon demande de signer chaque requête envoyée.
J'ai donc une chaîne à signer, puis à insérer dans ma requête de type Rest.
La chaîne à signer doit être hashée (HMAC-SHA256) puis encodé en base64.
Rien de très compliqué à priori, sauf que je n'obtiens pas le résultat souhaité sur windev ou webdev.
Je précise que j'obtiens le bon résultat avec du javascript pur avec :
-
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/hmac-sha256.js
-
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/enc-base64.js
Amazon fourni une chaîne exemple à signer :
[
GET
webservices.amazon.com
/onca/xml
AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&AssociateTag=mytag-20&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService&Timestamp=2014-08-18T12%3A00%3A00Z&Version=2013-08-01
]
Clé secrète de hashage :
1234567890
Le résultat doit être celui-ci :
"j7bZM0LXZ9eXeZruTqWm2DIvDYVUU3wxPPpp+iXxzQc="
Le but étant d'utiliser uniquement les fonctions Windev dans la mesure du possible.
Help ! Merci pour votre aide.
Mike
Signaler
0
0
Mike
#2
Membre enregistré
11 messages
Posté le 02 novembre 2017 - 16:04
UP
Signaler
0
0
Franck
#3
Posté le 03 novembre 2017 - 06:39
Bonjour,
Les fonctions de hachage du Wlangage ne renvoient pas des valeurs hexadécimales.
As-tu donc pensé à hasher, convertir le résultat en hexadécimal puis convertir en Base 64?
Signaler
0
0
ROMULUS001
#4
Membre enregistré
352 messages
Popularité : +12 (18 votes)
Posté le 03 novembre 2017 - 10:50
Bonjour, pourrait-on voir votre code?
Signaler
0
0
Mike
#5
Membre enregistré
11 messages
Posté le 04 novembre 2017 - 10:12
Bonjour et merci de votre aide, oui Franck j'avais converti le resultat de la fonction hash en hexa.
Voici mon code :
buf
Signature
est une
Buffer
s
Signature
,
s
SignatureHexa
,
s
SignatureBase64
sont des chaînes
s
Signature
=
"GET\nwebservices.amazon.com\n/onca/xml\nAWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&AssociateTag=mytag-20&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService&Timestamp=2014-08-18T12%3A00%3A00Z&Version=2013-08-01"
buf
Signature
=
HashChaîne
(
HA_HMAC_SHA_256
,
s
Signature
)
s
SignatureHexa
=
BufferVersHexa
(
buf
Signature
)
s
SignatureBase64
=
Encode
(
buf
Signature
,
encodeBASE64
)
Signaler
0
0
Mike
#6
Membre enregistré
11 messages
Posté le 04 novembre 2017 - 20:56
buf
Signature
est une
Buffer
s
Signature
,
s
SignatureHexa
,
s
SignatureBase64
sont des chaînes
s
Signature
=
"GET\nwebservices.amazon.com\n/onca/xml\nAWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&AssociateTag=mytag-20&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService&Timestamp=2014-08-18T12%3A00%3A00Z&Version=2013-08-01"
buf
Signature
=
HashChaîne
(
HA_HMAC_SHA_256
,
s
Signature
,
"1234567890"
)
s
SignatureHexa
=
BufferVersHexa
(
buf
Signature
)
s
SignatureBase64
=
Encode
(
buf
Signature
,
encodeBASE64
)
Signaler
0
0
Spitfire971
#7
Posté le 10 juillet 2018 - 19:01
Bonjour
Je ne sais pas si ca peu aider :
MaChaineSource
est une chaîne
=
"GET"
+
Caract
(
10
) + ...
"webservices.amazon.com"
+
Caract
(
10
) + ...
"/onca/xml"
+
Caract
(
10
) +
...
"AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&AssociateTag=mytag-20&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService&Timestamp=2014-08-18T12%3A00%3A00Z&Version=2013-08-01"
s
Hash1
est un
Buffer
=
HashChaîne
(
HA_HMAC_SHA_256
,
MaChaineSource
,
"1234567890"
)
// affichage en base 64
Trace
(
Crypte
(
BufferVersHexa
(
s
Hash1
)
,
""
,
crypteAucun
,
encodeAucun
) +
RC
+
RC
+
Crypte
(
s
Hash1
,
""
,
crypteAucun
,
encodeBASE64
)
)
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte