Objective c bash脚本和使用OpenSSL的cocoa代码之间的差异

Objective c bash脚本和使用OpenSSL的cocoa代码之间的差异,objective-c,macos,cocoa,bash,sha1,Objective C,Macos,Cocoa,Bash,Sha1,我尝试用bash脚本和cocoa代码获取SHA1-sugsnature Bash脚本: echo -n "RF001" | openssl dgst -sha1 给我: 3eb0c58821e30a235a402308acff357e6f3d9f41 可可粉: const unsigned char buffer[] = "RF001"; size_t buffer_size = sizeof(buffer); uint8_t md[SHA_DIGEST_LENGTH]; SHA1(buf

我尝试用bash脚本和cocoa代码获取SHA1-sugsnature

Bash脚本:

echo -n "RF001" | openssl dgst -sha1
给我:

3eb0c58821e30a235a402308acff357e6f3d9f41
可可粉:

const unsigned char buffer[] = "RF001";
size_t buffer_size = sizeof(buffer);

uint8_t md[SHA_DIGEST_LENGTH];
SHA1(buffer, buffer_size, md);

NSData* data = [NSData dataWithBytes:md length:SHA_DIGEST_LENGTH];
NSLog([data description], nil);
写入控制台:

<3ab9d9cc ece56e3f 48d00c3f f2a9216a 5b74bbce>


为什么这两个结果不一样?

这是Cocoa片段中的错误。 有好的代码:

const char* buffer = "RF001";

uint8_t md[SHA_DIGEST_LENGTH];
SHA1((uint8_t*)buffer, strlen(buffer), md);

NSData* data = [NSData dataWithBytes:md length:SHA_DIGEST_LENGTH];
NSLog([data description], nil);

这是Cocoa代码段中的错误。 有好的代码:

const char* buffer = "RF001";

uint8_t md[SHA_DIGEST_LENGTH];
SHA1((uint8_t*)buffer, strlen(buffer), md);

NSData* data = [NSData dataWithBytes:md length:SHA_DIGEST_LENGTH];
NSLog([data description], nil);