iOS 常用加密方式 和加密算法

一、常用加密方式:

1.通过简单 BASE64编码 防止数据明文传输

2.对普通请求、返回数据,生成MD5校验(MD5中加入动态密钥),进行数据完整性(简单防篡改,安全性较低,优点:快速)校验

3.对于重要数据,使用RSA进行数字签名,起到防篡改作

4.对于比较敏感的数据,如用户信息(登陆、注册等),客户端发送使用RSA加密,服务器返回使用DES(AES)加密

5.要想非常安全的传输数据,建议使用https。抓包不可以,但是中间人攻击则有可能。建议双向验证防止中间人攻击

二、常用加密算法

编码方案:Base64  。 哈希(散列)函数:MD5、SHA1、SHA256。

对称加密算法:DES、AES。

:RSA。

HTTPS:HTTP+SSL协议。

三、加密代码实现方法

对一个字符串进行base64编码,并且返回

-(NSString*)base64EncodeString:(NSString*)string {

// 1.先转换为二进制数据NSData*data = [string dataUsingEncoding:NSUTF8StringEncoding];

// 2.对二进制数据进行base64编码,完成之后返回字符串

return  [data base64EncodedStringWithOptions:0];

}

// 对base64编码之后的字符串解码,并且返回

-(NSString*)base64DecodeString:(NSString*)string {

// 注意:该字符串是base64编码后的字符串

// 1.转换为二进制数据(完成了解码的过程)

NSData*data = [[NSDataalloc]initWithBase64EncodedString:string options:0];

// 2.把二进制数据在转换为字符串

return   [[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];

}

#pragma mark - md5加密方法

- (NSString*)md5String {

constchar*str =self.UTF8String;  

uint8_t buffer[CC_MD5_DIGEST_LENGTH];  

CC_MD5(str, (CC_LONG)strlen(str), buffer);

return  [selfstringFromBytes:buffer length:CC_MD5_DIGEST_LENGTH];

}

#pragma mark - HMACMD5加密方法

- (NSString*)hmacMD5StringWithKey:(NSString*)key {

constchar*keyData = key.UTF8String;constchar*strData =self.UTF8String;  

uint8_t buffer[CC_MD5_DIGEST_LENGTH];  

CCHmac(kCCHmacAlgMD5, keyData, strlen(keyData), strData, strlen(strData), buffer);

return  [selfstringFromBytes:buffer length:CC_MD5_DIGEST_LENGTH];

}




你可能感兴趣的:(iOS 常用加密方式 和加密算法)