以下是常量:
#define CC_SHA1_DIGEST_LENGTH 20
#define kMChosenDigestLength CC_SHA1_DIGEST_LENGTH
//哈希算法
+ (NSData *)getHashBytes:(NSData *)plaintText {
CC_SHA1_CTX ctx;
uint8_t *hashBytes = NULL;
NSData *hash = nil;
// Malloc a buffer to hold hash
hashBytes = malloc(kMChosenDigestLength * sizeof(uint8_t));
memset((void *)hashBytes, 0x0, kMChosenDigestLength);
// Initialize the context.
CC_SHA1_Init(&ctx);
// Perform the hash.
CC_SHA1_Update(&ctx, (void *)[plaintText bytes], (uint32_t)[plaintText length]);
// Finalize the out put.
CC_SHA1_Final(hashBytes, &ctx);
// Build up the SHA1 hash.
hash = [NSData dataWithBytes:(const void *)hashBytes length:(NSUInteger)kMChosenDigestLength];
if (hashBytes) free(hashBytes);
return hash;
}
本文介绍了一种使用Objective-C实现的SHA1哈希算法,该算法通过CC_SHA1_CTX上下文进行初始化、更新和最终确定哈希值。文中详细展示了如何通过分配内存并填充指定长度的字节来构建SHA1哈希。
179

被折叠的 条评论
为什么被折叠?



