BBAAESCrypt.h 2.74 KB
//
//  AESCrypt.h
//  Gurpartap Singh
//
//  Created by Gurpartap Singh on 06/05/12.
//  Copyright (c) 2012 Gurpartap Singh
// 
// 	MIT License
// 
// 	Permission is hereby granted, free of charge, to any person obtaining
// 	a copy of this software and associated documentation files (the
// 	"Software"), to deal in the Software without restriction, including
// 	without limitation the rights to use, copy, modify, merge, publish,
// 	distribute, sublicense, and/or sell copies of the Software, and to
// 	permit persons to whom the Software is furnished to do so, subject to
// 	the following conditions:
// 
// 	The above copyright notice and this permission notice shall be
// 	included in all copies or substantial portions of the Software.
// 
// 	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// 	EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// 	MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// 	NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// 	LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// 	OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// 	WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

#import <Foundation/Foundation.h>

/**
 * AES256+Base64混合加解密
 * 详细介绍请看README
 */

@interface BBAAESCrypt : NSObject

/**
 * @brief AES+Base64加密
 *
 * @param message 明文字符串
 * @param password 密码
 * @param iv IV参数 16字节
 * @return base64编码密文字符串
 */
+ (NSString *)encrypt:(NSString *)message Password:(NSString *)password IV:(NSString *)iv;

/**
 * @brief AES+Base64解密
 *
 * @param base64EncodedString base64编码密文字符串
 * @param password 密码
 * @param iv IV参数 16字节
 * @return 明文字符串
 */
+ (NSString *)decrypt:(NSString *)base64EncodedString Password:(NSString *)password IV:(NSString *)iv;

/**
 * @brief AES+Base64解密
 *
 * @param data 密文二进制
 * @param password 密码
 * @param iv IV参数 16字节
 * @return 明文字符串
 */
+ (NSString *)decryptWithData:(NSData *)data Password:(NSString *)password IV:(NSString *)iv;

/**
 * @brief AES+WebSafe加密
 *
 * @param message 明文字符串
 * @param password 密码
 * @param iv IV参数 16字节
 * @param padded 是否填充长度
 * @return WebSafe编码的密文字符串
 */
+ (NSString *)webSafeEncrypt:(NSString *)message Password:(NSString *)password IV:(NSString *)iv padded:(BOOL)padded;

/**
 * @brief AES+WebSafe解密
 *
 * @param base64EncodedString WebSafe编码的密文字符串
 * @param password 密码
 * @param iv IV参数 16字节
 * @return 明文字符串
 */
+ (NSString *)webSafeDecrypt:(NSString *)base64EncodedString Password:(NSString *)password IV:(NSString *)iv;
@end