android zip压缩base64解密加密,做记录用

来源:互联网 发布:mac网络代理设置 编辑:程序博客网 时间:2024/06/04 17:49

说明:这里处理服务器的zip数据(和服务器商定的方式:先zip压缩后base64编码)

Utils.java

package com.baofoo.juhepaysdk;import android.util.Base64;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;/** * 所有Util的集合 */public class Utils {/** * 使用zip进行压缩 * * @param str 压缩前的文本 * @return 返回压缩后的文本 */public static final String zip(String str) {if (str == null)return null;byte[] compressed;ByteArrayOutputStream out = null;ZipOutputStream zout = null;String compressedStr = null;try {out = new ByteArrayOutputStream();zout = new ZipOutputStream(out);zout.putNextEntry(new ZipEntry("0"));zout.write(str.getBytes("utf-8"));zout.closeEntry();compressed = out.toByteArray();//compressedStr = new sun.misc.BASE64Encoder().encodeBuffer(compressed);//base64解密(java写法)compressedStr = Base64.encodeToString(compressed, Base64.NO_WRAP);//base64解密(android写法)} catch (IOException e) {} finally {compressed = null;if (zout != null) {try {zout.close();} catch (IOException e) {}}if (out != null) {try {out.close();} catch (IOException e) {}}}return compressedStr;}/** * 使用zip进行解压缩 * * @param compressedStr 压缩后的文本 * @return 解压后的字符串 */public static final String unzip(String compressedStr) {if (compressedStr == null) {return null;}ByteArrayOutputStream out = null;ByteArrayInputStream in = null;ZipInputStream zin = null;String decompressed = null;try {//byte[] compressed = new sun.misc.BASE64Decoder().decodeBuffer(compressedStr);//base64加密(java写法)byte[] compressed = Base64.decode(compressedStr,Base64.DEFAULT);//base64加密(android写法)out = new ByteArrayOutputStream();in = new ByteArrayInputStream(compressed);zin = new ZipInputStream(in);zin.getNextEntry();byte[] buffer = new byte[1024];int offset = -1;while ((offset = zin.read(buffer)) != -1) {out.write(buffer, 0, offset);}decompressed = out.toString();} catch (IOException e) {decompressed = null;} finally {if (zin != null) {try {zin.close();} catch (IOException e) {}}if (in != null) {try {in.close();} catch (IOException e) {}}if (out != null) {try {out.close();} catch (IOException e) {}}}return decompressed;}}


1 0
原创粉丝点击