RSATool.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. @author: ideawu
  3. @link: https://github.com/ideawu/Objective-C-RSA
  4. */
  5. #import <Foundation/Foundation.h>
  6. /**加密/解密 工具类 (AES RSA Base64 MD5)*/
  7. @interface RSATool : NSObject
  8. #pragma mark RSATool 自带方法
  9. // return base64 encoded string
  10. + (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey;
  11. // return raw data
  12. + (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey;
  13. // return base64 encoded string
  14. + (NSString *)encryptString:(NSString *)str privateKey:(NSString *)privKey;
  15. // return raw data
  16. + (NSData *)encryptData:(NSData *)data privateKey:(NSString *)privKey;
  17. // decrypt base64 encoded string, convert result to string(not base64 encoded)
  18. + (NSString *)decryptString:(NSString *)str publicKey:(NSString *)pubKey;
  19. + (NSData *)decryptData:(NSData *)data publicKey:(NSString *)pubKey;
  20. + (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey;
  21. + (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;
  22. #pragma mark 封装加解密方法:RSA➕AES➕Base64➕MD5➕RSA
  23. /**AES加密 key-salt*/
  24. + (NSString *)AES128Encrypt:(NSString *)plainText key:(NSString *)key;
  25. /**AES解密 key-salt*/
  26. + (NSString *)AES128Decrypt:(NSString *)encryptText key:(NSString *)key;
  27. /**RSA加密-publicKey-公钥 (公钥加密 私钥解密)*/
  28. + (NSString *)RSAEncrypt:(NSString *)plainText key:(NSString *)publicKey;
  29. /**RSA解密-privateKey-私钥 (公钥加密 私钥解密)*/
  30. + (NSString *)RSADecrypt:(NSString *)encryptText key:(NSString *)privateKey;
  31. /**RSA私钥签名-privateKey-私钥 (私钥签名 公钥验签)*/
  32. + (NSString *)RSASignEncrypt:(NSString *)plainText key:(NSString *)privateKey;
  33. /**RSA公钥验签-publicKey-公钥(私钥签名 公钥验签)encryptText-密文 plainText-明文*/
  34. + (BOOL)RSASignDecrypt:(NSString *)encryptText Encrypt:(NSString *)plainText key:(NSString *)publicKey;
  35. /**base64加密*/
  36. + (NSString *)Base64Encrypt:(NSString *)plainText;
  37. /**base64解密*/
  38. + (NSString *)Base64Decrypt:(NSString *)encryptText;
  39. /**md5加密*/
  40. + (NSString *)md5Encrypt:(NSString *)plainText;
  41. #pragma mark 其他
  42. /**传入一个原始字典,依据ascii码从小到大排序,回传一个排好序的待签名字符串*/
  43. + (NSString *)sortArrWithDictionary:(NSDictionary *)dictionary;
  44. /**删除字符串里的换行符 \r 和 \n */
  45. + (NSString *)deleteNewlineCharactersWithString:(NSString *)text;
  46. #pragma mark 登录密码加密算法:MD5➕RSA
  47. //+ (NSString *)getRSAStringFrom:(NSString *)pwd;
  48. + (NSData *)sha256:(NSString *)str;
  49. + (NSMutableString *)sha256_64:(NSString *)str;
  50. + (NSString *)sha256_8:(NSString *)str;
  51. @end