123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //
- // CryptorTools.h
- // xingchuangke
- //
- // Created by Virgil on 2019/5/5.
- // Copyright © 2019 Virgil. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- //#import <CommonCrypto/CommonCrypto.h>
- /// 加密工具类
- /// 提供RSA & AES & DES加密方法
- @interface CryptorTools : NSObject
- #pragma mark - DES 加密/解密
- /// DES 加密
- ///
- /// @param data 要加密的二进制数据
- /// @param keyString 加密密钥
- /// @param iv IV向量
- ///
- /// @return 加密后的二进制数据
- + (NSData *)DESEncryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
- /// DES 加密字符串
- ///
- /// @param string 要加密的字符串
- /// @param keyString 加密密钥
- /// @param iv IV向量
- ///
- /// @return 加密后的 BASE64 编码字符串
- + (NSString *)DESEncryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
- /// DES 解密
- ///
- /// @param data 要解密的二进制数据
- /// @param keyString 解密密钥
- /// @param iv IV向量
- ///
- /// @return 解密后的二进制数据
- + (NSData *)DESDecryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
- /// DES 解密
- ///
- /// @param string 要解密的 BASE64 编码字符串
- /// @param keyString 解密密钥
- /// @param iv IV向量
- ///
- /// @return 解密后的二进制数据
- + (NSString *)DESDecryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
- #pragma mark - AES 加密/解密
- /// AES 加密
- ///
- /// @param data 要加密的二进制数据
- /// @param keyString 加密密钥
- /// @param iv IV向量
- ///
- /// @return 加密后的二进制数据
- + (NSData *)AESEncryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
- /// AES 加密字符串
- ///
- /// @param string 要加密的字符串
- /// @param keyString 加密密钥
- /// @param iv IV向量
- ///
- /// @return 加密后的 BASE64 编码字符串
- + (NSString *)AESEncryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
- + (NSData *)AESEncryptString:(NSString *)string keyData:(NSData *)keyData iv:(NSData *)iv;
- /// AES 解密
- ///
- /// @param data 要解密的二进制数据
- /// @param keyString 解密密钥
- /// @param iv IV向量
- ///
- /// @return 解密后的二进制数据
- + (NSData *)AESDecryptData:(NSData *)data keyString:(NSString *)keyString iv:(NSData *)iv;
- /// AES 解密
- ///
- /// @param data 要解密的二进制数据
- /// @param keyString 解密密钥
- /// @param iv IV向量
- ///
- /// @return 解密后的二进制数据
- + (NSData *)AESDecryptData:(NSData *)data keyData:(NSData *)keyData iv:(NSData *)iv;
- /// AES 解密
- ///
- /// @param string 要解密的 BASE64 编码字符串
- /// @param keyString 解密密钥
- /// @param iv IV向量
- ///
- /// @return 解密后的二进制数据
- + (NSString *)AESDecryptString:(NSString *)string keyString:(NSString *)keyString iv:(NSData *)iv;
- #pragma mark - RSA 加密/解密算法
- /// 加载公钥
- ///
- /// @param filePath DER 公钥文件路径
- - (void)loadPublicKeyWithFilePath:(NSString *)filePath;
- /// 加载私钥
- ///
- /// @param filePath P12 私钥文件路径
- /// @param password P12 密码
- - (void)loadPrivateKey:(NSString *)filePath password:(NSString *)password;
- /// RSA 加密数据
- ///
- /// @param data 要加密的数据
- ///
- /// @return 加密后的二进制数据
- - (NSData *)RSAEncryptData:(NSData *)data;
- /// RSA 加密字符串
- ///
- /// @param string 要加密的字符串
- ///
- /// @return 加密后的 BASE64 编码字符串
- - (NSString *)RSAEncryptString:(NSString *)string;
- - (NSData *)RSAEncryptStringData:(NSString *)string;
- /// RSA 解密数据
- ///
- /// @param data 要解密的数据
- ///
- /// @return 解密后的二进制数据
- - (NSData *)RSADecryptData:(NSData *)data;
- /// RSA 解密字符串
- ///
- /// @param string 要解密的 BASE64 编码字符串
- ///
- /// @return 解密后的字符串
- - (NSString *)RSADecryptString:(NSString *)string;
- /// 加密字符串
- - (NSString *)sha256:(NSString *)string;
- @end
- NS_ASSUME_NONNULL_END
|