Basically I want to write function that computes sha1 hash.
So far I have tried is as follows.
C#.NET
byte[] p2 = System.Text.Encoding.Unicode.GetBytes("password");
System.Security.Cryptography.SHA1 sha = new System.Security.Cryptography.SHA1CryptoServiceProvider();
byte[] result = sha.ComputeHash(p2);
string encodedPassword = Convert.ToBase64String(result);
Output : 6Pl/upEE0epQR5SObftn+s2fW3M=
Objective-C
I have added classes for Base64 from NSData_Base64 Classes reference.
NSString *password = @"password";
NSData *data = [password dataUsingEncoding:NSUTF8StringEncoding];
NSString *unicodePassword = [[NSString alloc] initWithData:data encoding:NSUnicodeStringEncoding];
data = [unicodePassword dataUsingEncoding:NSUnicodeStringEncoding];
unsigned char hash[CC_SHA1_DIGEST_LENGTH];
CC_SHA1([data bytes], [data length], hash);
NSData *result = [NSData dataWithBytes:hash length:CC_SHA1_DIGEST_LENGTH];
NSLog(@"Result: %@",[result base64EncodedString]);
Output : dYusXVhObIBzJMgg1E1FJ9cK1NY=
Can anyone please suggest what am I doing wrong ?
Why these two values differs ?
Please correct my mistakes.