-----
isHidden: false
menupriority: 1
kind: article
created_at: 2010-09-02T00:02:17+02:00
title: base64 et sha1 sur iPhone
author_name: Yann Esposito
author_uri: yannesposito.com
tags:
- iPhone
- Objective-C
- Programmation
-----
Allons directement à l'essentiel :
voici deux fonctions à intégrer à votre application iPhone pour afficher l'encodage en base64 ou en hexadecimal du hash sha1 d'un string en Objective-C pour iPhone.
Pour l'usage c'est très simple, copiez le code dans la classe de votre choix.
Puis :
#import
...
NSString *b64_hash = [self b64_sha1:@"some NSString to be sha1'ed"];
...
NSString *hex_hash = [self hex_sha1:@"some NSString to be sha1'ed"];
L'algorithme pour l'encodage en `base64` doit être programmé sur iPhone.
Il n'y a pas de librairie officielle qui s'occupe de ça.
- (unsigned char *)sha1:(NSString *)baseString result:(unsigned char *)result {
char *c_baseString=(char *)[baseString UTF8String];
CC_SHA1(c_baseString, strlen(c_baseString), result);
return result;
}
- (NSString *)base64:(unsigned char *)result {
NSString *password=[[NSString alloc] init];
static const unsigned char cb64[65]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
for (int i=0; i>2],
cb64[((result[i] & 0x03) << 4)
| ((result[i + 1] & 0xF0) >> 4)],
cb64[((result[i + 1] & 0x0F) << 2)
| ((result[i + 2] & 0xC0) >> 6)],
cb64[result[i+2]&0x3F]
];
}
return password;
}
- (NSString *)hexadecimalRepresentation:(unsigned char *)result {
NSString *password=[[NSString alloc] init];
for (int i=0; i