`
liyinfeng56
  • 浏览: 94072 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ZipBase64加密和解密

阅读更多
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
 * 对字符串进行压缩及加解密
 * @author Administrator
 *
 */
public class ZipBase64 {
	private BASE64Encoder Encoder=new BASE64Encoder();
	private BASE64Decoder Decoder=new BASE64Decoder();
	private int buffersize = 8092;
	/**
	 * 先压缩后加密
	 * @param str
	 * @return
	 */
	public String encode(String str){
        ByteArrayOutputStream byteos = new ByteArrayOutputStream();
        try {
        	ByteArrayInputStream byteis = new ByteArrayInputStream(str.getBytes("UTF-8"));//输入流
            ZipOutputStream zos = new ZipOutputStream(byteos);
            zos.setMethod(ZipOutputStream.DEFLATED);
        	zos.putNextEntry(new ZipEntry("lbs"));
            int b=-1;
            byte buffer[] = new byte[buffersize];
            while((b=byteis.read(buffer))!=-1)
            {
                    zos.write(buffer,0,b);
            }
            zos.closeEntry();

        } catch (Exception e) {
			return null;
		}
        
        //从输出流获取String
        return Encoder.encodeBuffer(byteos.toByteArray());
		
	}
	/**
	 * 先解密后解压
	 * @param str
	 * @return
	 * @throws IOException 
	 * @throws UnsupportedEncodingException 
	 */	
	public String decode(String str) throws IOException  {
        ByteArrayOutputStream jbyteos = new ByteArrayOutputStream();
        try {
            byte buffer1[] = new byte[buffersize];
            ByteArrayInputStream jbyteis = new ByteArrayInputStream(Decoder.decodeBuffer(str));
            ZipInputStream zis = new ZipInputStream(jbyteis);
        	zis.getNextEntry();
            int b=-1;
            while((b=zis.read(buffer1,0,buffersize))!=-1)
            {
                   jbyteos.write(buffer1,0,b);
            }

        } catch (Exception e) {
			return null;
		}    
        return new String(jbyteos.toByteArray(),"UTF-8");
	}
	/**
	 * 单元测试
	 * @param args
	 */
	public static void main(String[] args){
		String y="测试:123467890-=asdfghjkl;'zxcvbnm,./!@#$%^&*()_+:<>?";
		ZipBase64 z6=new ZipBase64();
		String j=z6.encode(y);
		System.out.println("原数据:"+y);
		System.out.println("处理后:"+j);
		System.out.println("反处理:"+y);
	}
	
}
分享到:
评论

相关推荐

    DES64加密解密工具包

    DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密解密工具包DES64加密...

    BASE64加密解密

    在Java中,BASE64的加密和解密操作主要依赖于`java.util.Base64`类,该类从Java 8开始引入,提供了完整的BASE64编码和解码功能。其中,`Encoder`接口用于进行编码,而`Decoder`接口用于解码。以下是一个简单的示例:...

    PB BASE64加密和解密DEMO

    PB BASE64加密和解密DEMO是一种在PowerBuilder(PB)环境中实现的基于BASE64编码技术的加密和解密方法。BASE64是一种常见的数据编码方式,它将二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含二进制的...

    微信小程序 AES ECB base64 加密解密

    对称加密意味着加密和解密使用的是同一密钥,这使得加密和解密过程相对快速,但密钥管理成为挑战,因为密钥需要在发送者和接收者之间安全地共享。 ECB是AES的一种工作模式,它将明文分成固定大小的块进行独立加密。...

    C# Base64加密解密

    在C# WinForm项目中,Base64加密和解密是处理数据安全和传输的重要部分。 Base64编码原理: Base64编码是将每3个8位字节(24位)的数据转换成4个6位字节(24位)的数据,并用64个字符集中的字符来表示这4个6位字节...

    Ansi 和 Unicode的base64 加密和解密

    base64 加密和解密,encode、decode,包括 Ansi 和 Unicode。

    Java Base64加密解密方法工具类

    Java Base64加密解密方法工具类

    Base64加密解密java/js

    参照网上Base64 js加密解密写的java实现,网上没看到出现过,可能大神都不屑写这种小东东,只好自己写了。弄了好几天,总算弄好了。 因为是参照 js Base64写的java实现,所以代码可实现前台js,后台java的加密,...

    Sql Server Base64加密解密角本

    非常实用的Base64加密,解密角本。基于UTF8,支持中文加解密。

    C#的几种加密和解密的方法

    本文将深入探讨几种常见的加密和解密方法,包括Base64、MD5、SHA1以及文件夹的加密和解密。 首先,让我们从Base64加密和解密开始。Base64是一种简单的编码机制,它将二进制数据转换为可打印的ASCII字符。在C#中,...

    PB关于字符进制数转化及base64加密、解密,nvo_base64.sru

    本文将深入探讨PowerBuilder中的字符进制数转换以及Base64加密和解密。这些技术在软件开发中有着广泛的应用,例如在网络通信、数据存储和隐私保护等方面。 1. **字符型十六进制数转为十进制数值** 在PowerBuilder...

    Base64加密&解密工具

    Base64加密&解密工具,可以用以验证咱编写Base64加密&解密程序的正确性。

    Spring MVC请求参数与响应结果全局加密和解密详解

    在本文中,我们将详细介绍Spring MVC请求参数与响应结果全局加密和解密的相关知识点,包括请求参数的加密和解密、响应结果的加密和解密、ContentType的处理等。 首先,让我们了解一下请求参数的加密和解密。为了...

    Base64加密解密工具类

    java开发使用base64进行加密解密,开发人员只需调用其中方法即可完成加密解密操作!

    c++实现base64算法加密解密

    c++实现base64算法加密解密,不需要修改,直接运行即可

    base64加密解密的hive udf函数

    本文将详细探讨如何在Hive中自定义User Defined Function(UDF)来实现Base64的加密和解密。 首先,我们需要了解Base64的基本原理。Base64是一种将任意二进制数据转化为ASCII字符集的方法,它通过将每3个字节转换为...

    PB字符串加密、解密函数

    在实际应用中,PB字符串加密和解密函数通常会结合使用,比如先使用非对称加密算法加密一个会话密钥,然后使用这个密钥执行对称加密来保护大量数据。这样的混合策略既保证了速度,又确保了安全性。 编写PB加密函数时...

    C# .net版 RSA 公钥加密私钥解密 私钥加密公钥解密

    - RSA加密过程是不可逆的,因此在使用前需确认加密和解密的对象匹配。 在给出的链接中(https://blog.csdn.net/qq_37835111/article/details/87358779),作者提供了一个具体的示例,演示了如何在C# .NET环境下...

    C语言实现Base64编解码(加密和解密).zip

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二...本资源使用C语言实现Base64加密和解密,可以实现数据的加密和文件的加密,不借助任何的第三方工具,便于移植。

    C#加密解密DeEncryptHelper.zip

    MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证

Global site tag (gtag.js) - Google Analytics