需求:客戶端需要上服務(wù)端獲取一分加密的zip文件顺饮。由于編碼的問(wèn)題和服務(wù)端弄了半天記錄一下今布。
服務(wù)端大致邏輯
- 從ftp服務(wù)器上獲取文件流
- 文件流編碼成base64
- 對(duì)base64 data加密
// 1. 從http connection 獲取流
is = connection.getInputStream();
// 2. 將流轉(zhuǎn)換為byte
orgByte =toByteArray(is);
// 3.base64編碼
orgByte= Base64.encode(orgByte);
// 4.DES 加密
DesUtil.encodeCBC("abc12345",orgByte));
iOS客戶端大致邏輯:
通過(guò)post請(qǐng)求獲取到了字符串類型的base64編碼。
// 1. 對(duì)字符串流解碼 類似于 orgByte= Base64.decode(orgByte) 操作
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:resBody[@"fileBtyes"] options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
// 2. 解碼之后的的串 轉(zhuǎn)成字符串流
NSData *filedata = [[NSData alloc] initWithBase64EncodedString:decodedString options:NSDataBase64DecodingIgnoreUnknownCharacters];
// 3. 解密
解密
// 4. 寫(xiě)到文件
寫(xiě)文件