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加密方式及解压缩文件的更多相关文章

  1. zip4j加密压缩、解压缩文件、文件夹

    原文:http://blog.csdn.net/k21325/article/details/54376188 1.首先,引用到zip4j的第三方类库,感谢作者的无私奉献,官网打不开,这里就不贴了,下 ...

  2. iOS中的加密方式 与 文件解压缩

    1.Base64加密方式 Base64是一种加密方法,可逆的加密. Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符./ + 填充 = echo -n BC|base6 ...

  3. iOS开发,让数据更安全的几个加密方式

    任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障.这篇 ...

  4. iOS代码加密常用加密方式

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

  5. iOS 中的加密方式

    iOS 中的加密方式 1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ...

  6. iOS开发中常用到的加密方式

    1 base64 1.1 简介 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24位数据,再把这24位数据 ...

  7. iOS常用的加密方式--备用

    MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...

  8. linux的PAM认证和shadow文件中密码的加密方式

    它是一种统一的认证方案.PAM 让您能随时改变您的认证方法以及需求,并且不需要重新编译任何代码就封装了所有本地认证方法.具体见 PAM 网站. 对于 PAM 您只需要做: 对您的密码采用不同于 DES ...

  9. 在iOS 开发中用GDataXML(DOM方式)解析xml文件

    因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我 ...

随机推荐

  1. 站在风口,你或许就是那年薪20w+的程序猿

    最近面试了一些人,也在群上跟一些群友聊起,发现现在的互联网真是热,一些工作才两三年的期望的薪资都是十几K的起,这真是让我们这些早几年就成为程序猿的情何以堪!正所谓是站在风口上,猪也能飞起来!我在这里就 ...

  2. 从EF的使用中探讨业务模型能否脱离单一存储层完全抽象存在

    上次赶时间,就很流水账地写了上次项目对EF的一次实践应用模式,因为太长了,也没能探讨太多,所以再继续扩展. 这次想探讨的是,实体,如果作为类似于领域模型的业务模型存在,它的数据能否来自不同的数据源.这 ...

  3. keil MDK error: L6236E: No section matches selector - no section 错误

    今天板子刚到,新建的第一个工程就报错了. .\Objects\cse.sct(7): error: L6236E: No section matches selector - no section t ...

  4. 浅析Java 泛型

    泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...

  5. Atitit 多元化战略 适合我们发展 的核心业务attilax总结

    Atitit 多元化战略 适合我们发展 的核心业务attilax总结 1.1. 历史的大趋势,全球范围内人员的大流动1 1.2. 衣食住行1 1.3. 农村包围城市战略1 1.4. 挪开三座大山(住房 ...

  6. 解析大型.NET ERP系统 单据标准(新增,修改,删除,复制,打印)功能程序设计

    ERP系统的单据具备标准的功能,这里的单据可翻译为Bill,Document,Entry,具备相似的工具条操作界面.通过设计可复用的基类,子类只需要继承基类窗体即可完成单据功能的程序设计.先看标准的销 ...

  7. Grunt基本使用-V1.0

    浅语:grunt中文网:http://www.gruntjs.net/ 第一步:Grunt 依赖 Node.js 所以在安装之前确保你安装了 Node.js.然后开始安装 Grunt. 实际上,安装的 ...

  8. .NET中的逆变协变

    MSDN上的说法: 协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型----------(注 ...

  9. 计算机程序的思维逻辑 (43) - 剖析TreeMap

    40节介绍了HashMap,我们提到,HashMap有一个重要局限,键值对之间没有特定的顺序,我们还提到,Map接口有另一个重要的实现类TreeMap,在TreeMap中,键值对之间按键有序,Tree ...

  10. 浅析JavaScript事件流——冒泡

    一.什么是事件冒泡流 我们知道事件流指的是从页面中接受事件的顺序. 为了形象理解事件冒泡,可以想象三军主将诸葛亮,在帐内运筹帷幄,眼观六路耳听八方,这时候前方的战事情况就需要靠传令兵来传达,当第一位传 ...