MD5Util.m 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. //
  2. // MD5Util.m
  3. // shiku_im
  4. //
  5. // Created by p on 2019/7/15.
  6. // Copyright © 2019 Reese. All rights reserved.
  7. //
  8. #import "MD5Util.h"
  9. @implementation MD5Util
  10. +(NSString*)getMD5StringWithString:(NSString*)s{
  11. if(s==nil)
  12. return nil;
  13. // if(s.length == 32){
  14. // return s;
  15. // }
  16. const char *buf = [s cStringUsingEncoding:NSUTF8StringEncoding];
  17. unsigned char md[MD5_DIGEST_LENGTH];
  18. unsigned long n = strlen(buf);
  19. MD5(buf, n, md);
  20. printf("%s md5: ", buf);
  21. char t[50]="",p[50]="";
  22. int i;
  23. for(i = 0; i< MD5_DIGEST_LENGTH; i++){
  24. sprintf(t, "%02x", md[i]);
  25. strcat(p, t);
  26. printf("%02x", md[i]);
  27. }
  28. s = [NSString stringWithCString:p encoding:NSUTF8StringEncoding];
  29. printf("/n");
  30. // NSLog(@"%@",s);
  31. return s;
  32. }
  33. +(NSData*)getMD5DataWithData:(NSData*)data{
  34. if(data==nil)
  35. return nil;
  36. // if(s.length == 32){
  37. // return s;
  38. // }
  39. const char *buf = [data bytes];
  40. unsigned char md[MD5_DIGEST_LENGTH];
  41. unsigned long n = strlen(buf);
  42. MD5(buf, n, md);
  43. printf("%s md5: ", buf);
  44. char t[50]="",p[50]="";
  45. int i;
  46. for(i = 0; i< MD5_DIGEST_LENGTH; i++){
  47. sprintf(t, "%02x", md[i]);
  48. strcat(p, t);
  49. printf("%02x", md[i]);
  50. }
  51. Byte * byteData = malloc(sizeof(p)*16);
  52. NSData *content=[NSData dataWithBytes:byteData length:16];
  53. printf("/n");
  54. // NSLog(@"%@",s);
  55. return content;
  56. }
  57. +(NSData*)getMD5DataWithString:(NSString*)str{
  58. if(str==nil)
  59. return nil;
  60. // if(s.length == 32){
  61. // return s;
  62. // }
  63. const char *buf = [str cStringUsingEncoding:NSUTF8StringEncoding];
  64. unsigned char md[MD5_DIGEST_LENGTH];
  65. unsigned long n = strlen(buf);
  66. MD5(buf, n, md);
  67. printf("%s md5: ", buf);
  68. char t[50]="",p[50]="";
  69. int i;
  70. for(i = 0; i< MD5_DIGEST_LENGTH; i++){
  71. sprintf(t, "%02x", md[i]);
  72. strcat(p, t);
  73. printf("%02x", md[i]);
  74. }
  75. Byte * byteData = malloc(sizeof(p));
  76. NSData *content=[NSData dataWithBytes:md length:sizeof(md)];
  77. printf("/n");
  78. // NSLog(@"%@",s);
  79. return content;
  80. }
  81. +(NSString*)getMD5StringWithData:(NSData*)data {
  82. if(data==nil)
  83. return nil;
  84. // if(s.length == 32){
  85. // return s;
  86. // }
  87. const char *buf = [data bytes];
  88. unsigned char md[MD5_DIGEST_LENGTH];
  89. unsigned long n = [data length];
  90. MD5(buf, n, md);
  91. printf("%s md5: ", buf);
  92. char t[50]="",p[50]="";
  93. int i;
  94. for(i = 0; i< MD5_DIGEST_LENGTH; i++){
  95. sprintf(t, "%02x", md[i]);
  96. strcat(p, t);
  97. printf("%02x", md[i]);
  98. }
  99. NSString *s = [NSString stringWithCString:p encoding:NSUTF8StringEncoding];
  100. printf("/n");
  101. // NSLog(@"%@",s);
  102. return s;
  103. }
  104. @end