Souci sur un Hashage HMAC
Salut,
J'ai un souci sur un hachage HMAC, que je dois utiliser pour communiquer avec une API.
Voila le code de la méthode de hash :
Pour faire un hash, ça hash, mais les valeurs retournées sont bizarres, genre :
Je me demande si ce n'est pas à cause de l'ASCII, et peut-être plutôt utiliser une base64 pour l'encodage de la NSString, mais je ne trouve pas comment faire.
Une idée?
Thanks
J'ai un souci sur un hachage HMAC, que je dois utiliser pour communiquer avec une API.
Voila le code de la méthode de hash :
<br />
+(NSString *) hash_hmac:(NSString *)args forKey:(NSString *)key {<br />
<br />
const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];<br />
const char *cData = [args cStringUsingEncoding:NSUTF8StringEncoding];<br />
<br />
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];<br />
<br />
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);<br />
<br />
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC<br />
length:sizeof(cHMAC)];<br />
<br />
NSString *hash = [[NSString alloc] initWithData:HMAC encoding:NSASCIIStringEncoding];<br />
<br />
return hash;<br />
<br />
[hash release];<br />
}<br />
Pour faire un hash, ça hash, mais les valeurs retournées sont bizarres, genre :
hash = "OL\U00b7\U0099\U00ca\U00e1\U00aa(\U009d\U00e8`\U00bfK\U00f9\U00a7\U008dd\U00c2\U009e\U00cd\U008f\U00cf\U00fb~\U00a1S\U00bax";
Je me demande si ce n'est pas à cause de l'ASCII, et peut-être plutôt utiliser une base64 pour l'encodage de la NSString, mais je ne trouve pas comment faire.
Une idée?
Thanks
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ne trouve rien qui marche sur Google, et la RFC ne m'aide pas vraiment
Sauf que :
base64Encoding est inconnu au bataillon.
voir http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html
En fait mes informations sont fausses, j'avais converti en base64 et le résultat était bon, mais en fait il me faut de l'hex.
Je cherche donc comment convertir une chaà®ne ASCII en hex.
Donc il me faut bien du hex, donc voilà une category qui converti du NSData en hex :
NSData+Conversion.h
NSData+Conversion.m
Ma méthode ressemble donc à ça maintenant :
Si ça peut servir à quelqu'un, c'est kdo