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 -- ...
随机推荐
- ASP.NET的分页方法(一)
要做一个关于分页写法的专题,这是今天的第一讲,自制分页,可能有些代码需要优化,希望大家给出一些中肯的建议 前台使用的repeater绑定的数据: <form id="form1&quo ...
- Educational Codeforces Round 5 E. Sum of Remainders (思维题)
题目链接:http://codeforces.com/problemset/problem/616/E 题意很简单就不说了. 因为n % x = n - n / x * x 所以答案就等于 n * m ...
- IC各元器件封装形式图解
CDIP-----Ceramic Dual In-Line Package CLCC-----Ceramic Leaded Chip Carrier CQFP-----Ceramic Quad Fla ...
- Unity3d:编辑器中运行正常,发布后的exe提示找不到文件
解决方案1:查看文件路径拼写方式,如果是用“+”拼接的,请改用System.IO.Path.Combine()方式拼接.经过测试,两种拼接方式打印出来的路径是一样的,但为什么 加号 的方式拼接unit ...
- RDD的依赖关系
RDD的依赖关系 Rdd之间的依赖关系通过rdd中的getDependencies来进行表示, 在提交job后,会通过在DAGShuduler.submitStage-->getMissingP ...
- UVA 573 (13.08.06)
The Snail A snail is at the bottom of a 6-foot well and wants to climb to the top.The snail can cl ...
- WCF入门教程(三)属性标签
属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的一部分,以及传输对象的定义.如果已经有所了解, ...
- android百度地图开发之自动定位所在位置与固定位置进行驾车,步行,公交路线搜索
最近跟着百度地图API学地图开发,先是学了路径搜索,对于已知坐标的两点进行驾车.公交.步行三种路径的搜索(公交路径运行没效果,待学习中),后来又 学了定位功能,能够获取到自己所在位置的经纬度,但当将两 ...
- 记录一下Swift3.0的一些代码格式的变化
一.去重: 1>颜色: UIColor.whiteColor() 被改为 UIColor.white() 2>数组取值: list.objectAtIndex(i) 被改为 list.ob ...
- direction:rtl demo
<style> body {font:14px/18px Consolas;} div { width:100px;padding:10px; margin:10px 0px 30px 0 ...