MOBFData.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. //
  2. // MOBFDataUtils.h
  3. // MOBFoundation
  4. //
  5. // Created by vimfung on 15-1-16.
  6. // Copyright (c) 2015年 MOB. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <CommonCrypto/CommonCrypto.h>
  10. #import <zlib.h>
  11. /**
  12. * 数据工具类
  13. */
  14. @interface MOBFData : NSObject
  15. /**
  16. * 使用HMAC-SHA1进行加密
  17. *
  18. * @param data 原始数据
  19. * @param key 密钥
  20. *
  21. * @return 加密后数据
  22. */
  23. + (NSData *)hmacSha1Data:(NSData *)data forKey:(NSData *)key;
  24. /**
  25. * 对数据进行MD5签名
  26. *
  27. * @param data 原始数据
  28. *
  29. * @return 签名后数据
  30. */
  31. + (NSData *)md5Data:(NSData *)data;
  32. /**
  33. * 对数据进行AES128加密
  34. *
  35. * @param data 原始数据
  36. * @param key 密钥
  37. * @param encoding 字符串编码
  38. *
  39. * @return 加密后数据
  40. */
  41. + (NSData *)aes128EncryptData:(NSData *)data
  42. key:(NSString *)key
  43. encoding:(NSStringEncoding)encoding;
  44. /**
  45. * 对数据进行AES128解密
  46. *
  47. * @param data 原始数据
  48. * @param key 密钥
  49. * @param encoding 字符串编码
  50. *
  51. * @return 解密后数据
  52. */
  53. + (NSData *)aes128DecryptData:(NSData *)data
  54. key:(NSString *)key
  55. encoding:(NSStringEncoding)encoding;
  56. /**
  57. * 对数据进行AES128加密
  58. *
  59. * @param data 原始数据
  60. * @param key 密钥
  61. * @param options 选项
  62. *
  63. * @return 加密后数据
  64. */
  65. + (NSData *)aes128EncryptData:(NSData *)data
  66. key:(NSData *)key
  67. options:(CCOptions)options;
  68. /**
  69. * 对数据进行AES128解密
  70. *
  71. * @param data 原始数据
  72. * @param key 密钥
  73. * @param options 选项
  74. *
  75. * @return 解密后数据
  76. */
  77. + (NSData *)aes128DecryptData:(NSData *)data
  78. key:(NSData *)key
  79. options:(CCOptions)options;
  80. /**
  81. * 使用GZip压缩数据
  82. *
  83. * @param data 原始数据
  84. *
  85. * @return 压缩后数据
  86. */
  87. + (NSData *)compressDataUsingGZip:(NSData *)data;
  88. /**
  89. * 使用GZip解压缩数据
  90. *
  91. * @param data 原始数据
  92. *
  93. * @return 解压缩后数据
  94. */
  95. + (NSData *)uncompressDataUsingGZip:(NSData *)data;
  96. /**
  97. * 对数据进行MD5签名
  98. *
  99. * @param data 原始数据
  100. *
  101. * @return 签名后字符串
  102. */
  103. + (NSString *)stringByMD5Data:(NSData *)data;
  104. /**
  105. * 使用BASE64编码数据
  106. *
  107. * @param data 原始数据
  108. *
  109. * @return 编码后字符串
  110. */
  111. + (NSString *)stringByBase64EncodeData:(NSData *)data;
  112. /**
  113. * 对数据进行CRC32校验
  114. *
  115. * @param data 数据对象
  116. *
  117. * @return 校验值
  118. */
  119. + (uLong)valueByCRC32Data:(NSData *)data;
  120. /**
  121. * 对数据进行CRC32检验
  122. *
  123. * @param data 原始数据
  124. *
  125. * @return 检验值
  126. */
  127. + (NSString *)stringByCRC32Data:(NSData *)data;
  128. /**
  129. * 将数据转换成16进制字符串
  130. *
  131. * @param data 原始数据
  132. *
  133. * @return 字符串
  134. */
  135. + (NSString *)hexStringByData:(NSData *)data;
  136. /**
  137. * 写入一个32位整数到数据对象中
  138. *
  139. * @param value 整数值
  140. * @param data 数据对象
  141. */
  142. + (void)writeInt32:(int32_t)value toData:(NSMutableData *)data;
  143. /**
  144. * 写入一个16位整数到数据对象中
  145. *
  146. * @param value 整数值
  147. * @param data 数据对象
  148. */
  149. + (void)writeInt16:(int16_t)value toData:(NSMutableData *)data;
  150. /**
  151. * 读取一个16位整数
  152. *
  153. * @param data 数据对象
  154. * @param offset 偏移位置
  155. *
  156. * @return 短整型数据
  157. */
  158. + (int16_t)readInt16FromData:(NSData *)data offset:(NSInteger)offset;
  159. /**
  160. * 读取一个32位整数
  161. *
  162. * @param data 数据对象
  163. * @param offset 偏移位置
  164. *
  165. * @return 整型数据
  166. */
  167. + (int32_t)readInt32FromData:(NSData *)data offset:(NSInteger)offset;
  168. @end