NSString+SGHashString.m 999 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // NSString+SGHashString.m
  3. // OfflineBreakPointDownload
  4. //
  5. // Created by Shangen Zhang on 16/11/27.
  6. // Copyright © 2016年 Shangen Zhang. All rights reserved.
  7. //
  8. #import "NSString+SGHashString.h"
  9. #import <CommonCrypto/CommonCrypto.h>
  10. @implementation NSString (SGHashString)
  11. #pragma mark - MD5加密
  12. - (NSString *)sg_md5HashString {
  13. const char *str = self.UTF8String;
  14. uint8_t buffer[CC_MD5_DIGEST_LENGTH];
  15. CC_MD5(str, (CC_LONG)strlen(str), buffer);
  16. return [self sg_stringFromBytes:buffer length:CC_MD5_DIGEST_LENGTH];
  17. }
  18. /**
  19. * 返回二进制 Bytes 流的字符串表示形式
  20. *
  21. * @param bytes 二进制 Bytes 数组
  22. * @param length 数组长度
  23. *
  24. * @return 字符串表示形式
  25. */
  26. - (NSString *)sg_stringFromBytes:(uint8_t *)bytes length:(int)length {
  27. NSMutableString *strM = [NSMutableString string];
  28. for (int i = 0; i < length; i++) {
  29. [strM appendFormat:@"%02x", bytes[i]];
  30. }
  31. return [strM copy];
  32. }
  33. @end