CryptorTools.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. //
  2. // CryptorTools.h
  3. // xingchuangke
  4. //
  5. // Created by Virgil on 2019/5/5.
  6. // Copyright © 2019 Virgil. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. //#import <CommonCrypto/CommonCrypto.h>
  11. /// 加密工具类
  12. /// 提供RSA & AES & DES加密方法
  13. @interface CryptorTools : NSObject
  14. #pragma mark - DES 加密/解密
  15. /// DES 加密
  16. ///
  17. /// @param data 要加密的二进制数据
  18. /// @param keyString 加密密钥
  19. /// @param iv IV向量
  20. ///
  21. /// @return 加密后的二进制数据
  22. + (NSData *)DESEncryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
  23. /// DES 加密字符串
  24. ///
  25. /// @param string 要加密的字符串
  26. /// @param keyString 加密密钥
  27. /// @param iv IV向量
  28. ///
  29. /// @return 加密后的 BASE64 编码字符串
  30. + (NSString *)DESEncryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
  31. /// DES 解密
  32. ///
  33. /// @param data 要解密的二进制数据
  34. /// @param keyString 解密密钥
  35. /// @param iv IV向量
  36. ///
  37. /// @return 解密后的二进制数据
  38. + (NSData *)DESDecryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
  39. /// DES 解密
  40. ///
  41. /// @param string 要解密的 BASE64 编码字符串
  42. /// @param keyString 解密密钥
  43. /// @param iv IV向量
  44. ///
  45. /// @return 解密后的二进制数据
  46. + (NSString *)DESDecryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
  47. #pragma mark - AES 加密/解密
  48. /// AES 加密
  49. ///
  50. /// @param data 要加密的二进制数据
  51. /// @param keyString 加密密钥
  52. /// @param iv IV向量
  53. ///
  54. /// @return 加密后的二进制数据
  55. + (NSData *)AESEncryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
  56. /// AES 加密字符串
  57. ///
  58. /// @param string 要加密的字符串
  59. /// @param keyString 加密密钥
  60. /// @param iv IV向量
  61. ///
  62. /// @return 加密后的 BASE64 编码字符串
  63. + (NSString *)AESEncryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
  64. + (NSData *)AESEncryptString:(NSString *)string keyData:(NSData *)keyData iv:(NSData *)iv;
  65. /// AES 解密
  66. ///
  67. /// @param data 要解密的二进制数据
  68. /// @param keyString 解密密钥
  69. /// @param iv IV向量
  70. ///
  71. /// @return 解密后的二进制数据
  72. + (NSData *)AESDecryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
  73. /// AES 解密
  74. ///
  75. /// @param data 要解密的二进制数据
  76. /// @param keyString 解密密钥
  77. /// @param iv IV向量
  78. ///
  79. /// @return 解密后的二进制数据
  80. + (NSData *)AESDecryptData:(NSData *)data keyData:(NSData *)keyData iv:(NSData *)iv;
  81. /// AES 解密
  82. ///
  83. /// @param string 要解密的 BASE64 编码字符串
  84. /// @param keyString 解密密钥
  85. /// @param iv IV向量
  86. ///
  87. /// @return 解密后的二进制数据
  88. + (NSString *)AESDecryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
  89. #pragma mark - RSA 加密/解密算法
  90. /// 加载公钥
  91. ///
  92. /// @param filePath DER 公钥文件路径
  93. - (void)loadPublicKeyWithFilePath:(NSString *)filePath;
  94. /// 加载私钥
  95. ///
  96. /// @param filePath P12 私钥文件路径
  97. /// @param password P12 密码
  98. - (void)loadPrivateKey:(NSString *)filePath password:(NSString *)password;
  99. /// RSA 加密数据
  100. ///
  101. /// @param data 要加密的数据
  102. ///
  103. /// @return 加密后的二进制数据
  104. - (NSData *)RSAEncryptData:(NSData *)data;
  105. /// RSA 加密字符串
  106. ///
  107. /// @param string 要加密的字符串
  108. ///
  109. /// @return 加密后的 BASE64 编码字符串
  110. - (NSString *)RSAEncryptString:(NSString *)string;
  111. - (NSData *)RSAEncryptStringData:(NSString *)string;
  112. /// RSA 解密数据
  113. ///
  114. /// @param data 要解密的数据
  115. ///
  116. /// @return 解密后的二进制数据
  117. - (NSData *)RSADecryptData:(NSData *)data;
  118. /// RSA 解密字符串
  119. ///
  120. /// @param string 要解密的 BASE64 编码字符串
  121. ///
  122. /// @return 解密后的字符串
  123. - (NSString *)RSADecryptString:(NSString *)string;
  124. /// 加密字符串
  125. - (NSString *)sha256:(NSString *)string;
  126. @end
  127. NS_ASSUME_NONNULL_END