I am using xcode and this is my sha512 method:
-(NSString*) sha512:(NSString*)input { const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:input.length]; uint8_t digest[CC_SHA512_DIGEST_LENGTH]; CC_SHA512(data.bytes, data.length, digest); NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2]; for (int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) { [output appendFormat:@"%02x", digest[i]]; } return output; }
When I try to pass the input "test", it returns: "Ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b14eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ...
However, when I enter a non-ascii char as "รฉ", it returns something other than all my other sha512 tools. To enter "รฉ" My method returns: "60313f8521d3016916d876f7ad11cf42a30dfd4ff9bc557f1e2f90e0d37c56b76ab5e42c8a16db20c18086b0d769c08542429c262cc21ee4fba02bfc689a4797" when other instruments (again, including my program in Java and "http://hash.online-convert.com/sha512-generator") returns "9e2ad28633f24451bd4f3c1cb20586a21a44c3aeedbdc01b9cc8fa72917ea7bd689c82b8bf1fef89b911cf8cc46fa2c1ccc10087b2094fd4d3350ecd88526a2c".
Did I miss something? Any ideas on this? Thanks!
source share