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加密...
在Java中,BASE64的加密和解密操作主要依赖于`java.util.Base64`类,该类从Java 8开始引入,提供了完整的BASE64编码和解码功能。其中,`Encoder`接口用于进行编码,而`Decoder`接口用于解码。以下是一个简单的示例:...
PB BASE64加密和解密DEMO是一种在PowerBuilder(PB)环境中实现的基于BASE64编码技术的加密和解密方法。BASE64是一种常见的数据编码方式,它将二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含二进制的...
对称加密意味着加密和解密使用的是同一密钥,这使得加密和解密过程相对快速,但密钥管理成为挑战,因为密钥需要在发送者和接收者之间安全地共享。 ECB是AES的一种工作模式,它将明文分成固定大小的块进行独立加密。...
在C# WinForm项目中,Base64加密和解密是处理数据安全和传输的重要部分。 Base64编码原理: Base64编码是将每3个8位字节(24位)的数据转换成4个6位字节(24位)的数据,并用64个字符集中的字符来表示这4个6位字节...
base64 加密和解密,encode、decode,包括 Ansi 和 Unicode。
Java Base64加密解密方法工具类
参照网上Base64 js加密解密写的java实现,网上没看到出现过,可能大神都不屑写这种小东东,只好自己写了。弄了好几天,总算弄好了。 因为是参照 js Base64写的java实现,所以代码可实现前台js,后台java的加密,...
非常实用的Base64加密,解密角本。基于UTF8,支持中文加解密。
本文将深入探讨几种常见的加密和解密方法,包括Base64、MD5、SHA1以及文件夹的加密和解密。 首先,让我们从Base64加密和解密开始。Base64是一种简单的编码机制,它将二进制数据转换为可打印的ASCII字符。在C#中,...
本文将深入探讨PowerBuilder中的字符进制数转换以及Base64加密和解密。这些技术在软件开发中有着广泛的应用,例如在网络通信、数据存储和隐私保护等方面。 1. **字符型十六进制数转为十进制数值** 在PowerBuilder...
Base64加密&解密工具,可以用以验证咱编写Base64加密&解密程序的正确性。
在本文中,我们将详细介绍Spring MVC请求参数与响应结果全局加密和解密的相关知识点,包括请求参数的加密和解密、响应结果的加密和解密、ContentType的处理等。 首先,让我们了解一下请求参数的加密和解密。为了...
java开发使用base64进行加密解密,开发人员只需调用其中方法即可完成加密解密操作!
c++实现base64算法加密解密,不需要修改,直接运行即可
本文将详细探讨如何在Hive中自定义User Defined Function(UDF)来实现Base64的加密和解密。 首先,我们需要了解Base64的基本原理。Base64是一种将任意二进制数据转化为ASCII字符集的方法,它通过将每3个字节转换为...
在实际应用中,PB字符串加密和解密函数通常会结合使用,比如先使用非对称加密算法加密一个会话密钥,然后使用这个密钥执行对称加密来保护大量数据。这样的混合策略既保证了速度,又确保了安全性。 编写PB加密函数时...
- RSA加密过程是不可逆的,因此在使用前需确认加密和解密的对象匹配。 在给出的链接中(https://blog.csdn.net/qq_37835111/article/details/87358779),作者提供了一个具体的示例,演示了如何在C# .NET环境下...
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二...本资源使用C语言实现Base64加密和解密,可以实现数据的加密和文件的加密,不借助任何的第三方工具,便于移植。
MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证