iOS加密方式及解壓縮文件


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];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM