iOS中的加密方式 与 文件解压缩
1、Base64加密方式
Base64是一种加密方法,可逆的加密。
Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符。/ + 填充 =
echo -n BC|base64
base64 ABC -o 123.txt
base64 -D 123.txt -o uio.txt
Base64 iOS7之后加入系统库里的
类方法加锁,对象方法解锁
1) 字符串转化为base64字符串
NSString * string = @"ABC";
NSData * data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSString * base64String = [data
base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
NSLog(@"%@",base64String);
2)加密后的data转化成加密前的字符串
//将普通的data转化为加密后的data
NSData * base64Data = [data base64EncodedDataWithOptions:0];
//加密后的Data转换为普通data
NSData * data2 = [[NSData alloc] initWithBase64EncodedData:base64Data options:0];
NSString * string2 = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];
NSLog(@"%@",string2);
3)加密图片
UIImage * image = [UIImage imageNamed:@"111"];
NSData * data = UIImagePNGRepresentation(image);
NSString * base64String = [data base64EncodedStringWithOptions:0];
//解密图片
NSData * decodeData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
UIImage * decodeImage = [[UIImage alloc] initWithData:decodeData];
2、MD5加密
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护
是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
MD5算法具有以下特点:
- 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
- 2、容易计算:从原数据计算出MD5值很容易。
- 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
- 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。
1)加密
NSString * password = @"123";
NSLog(@"%@",password.md5String);
//md5加盐 够复杂
NSString * repassword = [password stringByAppendingString:@"vbd,AS.JFLD.ADj"];
NSLog(@"%@",repassword.md5String);
3、钥匙串加密方式
SSKeychain 第三方
iCloud 钥匙串,苹果给我们提供的密码保存的解决方案,iOS7之后有的。
存沙盒:
1、如果手机越狱,密码容易被窃取。
2、当软件更新时,沙盒里的内容是不被删除的。但是,如果将软件卸载后重装,沙盒里的数据就没有了。
3、每个APP的沙盒是相对独立的,密码无法共用。
存钥匙串里:
1、苹果提供的安全方案,rsa加密,相对安全。
2、无论软件更新或删除,密码都存在,都可以自动登录。
3、同一公司的APP密码是可以共用的。
钥匙串c语言的
1)代码
setPassword 密码
Service 服务标识
account 用户名
1、添加钥匙串
#define kLoginService @"loginService"
[SSKeychain setPassword:password forService:kLoginService account:username error:NULL];
2、删除钥匙串
[SSKeychain deletePasswordForService:kLoginService account:@"Daquan" error:NULL];
3、通过服务,账号找到密码
self.passwordTF.text = [SSKeychain passwordForService:kLoginService account:@"Daquan" error:NULL];
4、文件解压缩
SSZipArchive 第三方
1、压缩
NSArray * array = @[
[[NSBundle mainBundle] pathForResource:@"传输中加密" ofType:@"png"],
[[NSBundle mainBundle] pathForResource:@"加密请求头" ofType:@"png"]
];
//根据所有文件的地址压缩文件
[SSZipArchive createZipFileAtPath:@"/Users/dahuan/Desktop/image.zip" withFilesAtPaths:array];
2、解压
1)第一种方式
[[[NSURLSession sharedSession] downloadTaskWithURL:[NSURL URLWithString:@"http://192.168.1.200/image.zip"] completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
``//unzipFileAtPath 压缩包的路径``
`` //toDestination 解压后的路径``
NSString * cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
[SSZipArchive unzipFileAtPath:location.path toDestination:cachesPath];
}] resume];
2)第二种方式
NSString * path = [[[NSBundle mainBundle] bundlePath]
stringByAppendingPathComponent:@"images"];
NSLog(@"%@",path);
//根据目录压缩文件
[SSZipArchive createZipFileAtPath:@"/Users/dahuan/Desktop/image.zip" withContentsOfDirectory:path];
iOS中的加密方式 与 文件解压缩的更多相关文章
- iOS 中的加密方式
iOS 中的加密方式 1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ...
- 文件 "c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ttt.mdf" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 (.Net SqlClient Data Provider)
问题: 文件 "c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ttt.mdf" 已压缩,但 ...
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
- iOS中的存储方式
1.Plist 1.1 了解沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其它文件系统隔离.应用必须呆在自己的沙盒里.其它应用不能访问该沙盒. 一个程序中所有的非代码文件都可以 ...
- iOS常用的加密方式--备用
MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...
- iOS中MD5加密字符串实现
1.MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321 ...
- iOS常用的加密方式
MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...
- C语言中以文本方式读写文件时换行符转换的注意事项
我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...
- PHP中的加密方式有如下几种
1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. raw_output -- ...
随机推荐
- python scp
scp 0.10.2 Downloads ↓ scp module for paramiko Pure python scp module====================== The scp. ...
- [转]Torch是什么?
Torch是一个广泛支持机器学习算法的科学计算框架.易于使用且高效,主要得益于一个简单的和快速的脚本语言LuaJIT,和底层的C / CUDA实现:Torch | Github 核心特征的总结:1. ...
- 随笔2 PAT1001.A+B Format (20)
1001.A+B Format(20) 题目链接 1001.A+B Format (20) C++ 代码 第一次使用markdown,还不是很习惯,现在努力的在适应它 首先这道题我们很容易就可以读懂题 ...
- GC: CMS垃圾回收器一(英文版)
Memory Management in the Java HotSpot™ Virtual Machine Concurrent Mark-Sweep (CMS) Collector For man ...
- hdoj 5355 Cake(分析+二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5355 分蛋糕的题目,有1-n大小的n个蛋糕,要求平均分成m份,不能切开蛋糕 #include<s ...
- LDA(Latent Dirichlet Allocation)
转自:http://leyew.blog.51cto.com/5043877/860255#559183-tsina-1-46862-ed0973a0c870156ed15f06a6573c8bf0 ...
- C#.Net中的非托管代码清理
帮助其它项目组Review代码过程,发现有些地方实现了IDispose接口,同时也发现了一些关于IDispose的问题: 1.A类型实现了IDispose接口,B类型里面含有A类型的字段,B类型没有实 ...
- as [Frame]元标签
[Frame(factoryClass="XXX_Class")] 利用Frame元标签.在主SWF类名上面添加 [Frame(factoryClass="加载类类名&q ...
- java中Arrays类中,binarySearch()方法的返回值问题
最近在复习Java知识,发现果然不经常使用忘得非常快... 看到binarySearch()方法的使用时,发现书上有点错误,于是就自己上机实验了一下,最后总结一下该方法的返回值. 总结:binaryS ...
- Delphi Data Types
http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Data_Types Integer Data Types Type Descriptio ...