Securité des services
al33er
Membre
Bonjour,
On me demande de créer une signature en SHA1 à partir de deux variables texte. Est-ce difficile, ou puis-je trouver de l'info dessus. Il y a un projet dans la doc apple mais ce n'est pas très simple ?
Alexandre.
On me demande de créer une signature en SHA1 à partir de deux variables texte. Est-ce difficile, ou puis-je trouver de l'info dessus. Il y a un projet dans la doc apple mais ce n'est pas très simple ?
Alexandre.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu as tout un guide là dessus sur la doc Apple en particulier sur la crypto.
Par exemple sur iOS tu as la librairie CommonCrypto qui est bas niveau et te permet de faire cela, et tu as CFNetwork et tout ce qui est basé sur les échanges réseau qui l'utilise et t'expose également des algos de chiffrement pour les échanges réseau.
Sous MacOSX, qui est la plateforme qui semble t'intéresser, je ne sais plus si c'est pareil, mais tout doit être expliqué dans la doc je pense. A priori cela passe par OpenSSL (Peut-être par là , tiens on retrouve CommonCrypto, ou peut-être qu'il y a plus haut niveau je n'ai pas testé). Il existe également très certainement des catégories de NSString traà®nant sur le net permettant de faire ça en une ligne de code Objective-C plus sympatique à manipuler que du C (il existe bien des catégories pour Base64 & co je vois bien une catégorie pour SHA1 aussi ça doit exister, GIYF)
Grace à toi j'ai trouvé cela. Il faut maintenant que je compare avec ce que fait PHP.
#import <CommonCrypto/CommonDigest.h>
#import <CommonCrypto/CommonCryptor.h>
+(NSString*) digest:(NSString*)input
{
const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:input.length];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length, digest);
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@%02x, digest];
return output;
}
Le code que j'ai mis retourne bien un hexa sur 20 positions mais ce n'est pas la même chose que retourne la fonction sha1() de php.
J'ai meme essayé avec cela :
Comprends pas. Si vous avez une idée.
Alexandre.
@al33er j'utilise cette fonction qui me retourne la même chose que SHA1 PHP.
Merci de cette correction