安全的原则
1、在网络上不允许传输用户隐私数据的明文
2、在本地不允许保存用户隐私数据的明文
数据安全
相对POST请求而言,GET请求的所有参数都直接暴露在URL中,请求的URL一般会记录在服务器的访问日志中,而服务器的访问日志是黑客攻击的重点对象之一。
然仅仅使用Post请求提交用户隐私数据,还是不能完全解决安全问题的,可以使用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据,因此,提交用户的隐私数据时,一定不要明文提交,要加密处理后提交。
信息安全所面临的威胁
机密性(被窃听,秘密泄露)
完整性(篡改,信息被修改)
认证(伪装,伪装成通信双方)
不可否认性(否认,事后不承认是自己发送的)
常用的加密算法
MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES
加密算法的选择
一般公司都会有一套自己的加密方案,按照公司接口文档的规定去加密
一、Base64编码
描述:Base64可以成为密码学的基石,非常重要。
特点:可以将任意(图片、音频、视频、字符串)的二进制数据进行Base64编码;
能够逆运算,不够安全,但却被很多加密算法 作为编码方式;
结果:所有的数据(图片、音频、视频、字符串)都能被编码为并只用65个字符就能表示的文本文件。
65字符:A~Z a~z 0~9 + / =
对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右。
//字符串转base64字符串
-(NSString *)base64Encoding:(NSString *)string
{
//01 把字符串转换为二进制数据
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
//02 对二进制数据进行BASe64编码,返回字符串
return [data base64EncodedStringWithOptions:kNilOptions];
}
//base64字符串转字符串
-(NSString *)base64Decoding:(NSString *)string
{
//01 先对数据进行base64解码
NSData *data = [[NSData alloc]initWithBase64EncodedString:string options:kNilOptions];
//02 把二进制数据转换为字符串
return [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
}
//图片转base64字符串
- (NSString *)base64withimage:(UIImage *)image{
NSData *data=UIImagePNGRepresentation(image);
return [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
//base64字符串转图片
-(UIImage *)base64Encodingwithimagestring:(NSString *)imagestring{
NSData *decodedImageData = [[NSData alloc]
initWithBase64EncodedString:imagestring options:NSDataBase64DecodingIgnoreUnknownCharacters];
return [UIImage imageWithData:decodedImageData];
}
网友评论