Хеш SHA1 дает разные результаты в Objective-C и C # .NET

В основном я хочу написать функцию, которая вычисляет хэш sha1.

Пока что я попробовал это следующим образом.

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);

Выход : 6Pl / upEE0epQR5SObftn + s2fW3M =

Objective-C

Я добавил классы для Base64 изNSData_Base64 Ссылка на классы.

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]);

Выход : dYusXVhObIBzJMgg1E1FJ9cK1NY =

Кто-нибудь может подсказать, пожалуйста, что я делаю не так?

Почему эти два значения отличаются?

Пожалуйста, исправьте мои ошибки.

Ответы на вопрос(2)

Ваш ответ на вопрос