2013-08-22 13 views
1

我嘗試使用bash腳本和可可代碼獲取SHA1代碼。bash腳本和可可代碼與OpenSSL的區別

的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> 

爲什麼這兩個結果不一樣?

回答

1

這在Cocoa-snippet中是錯誤的。 有好的代碼:

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); 
相關問題