java 数据压缩

1.public static void main(String[] args) throws Exception {
String cont = "";
String cont2=jm(yjy(cont));
if(cont.equals(cont2)){
System.out.println("比对成功");
}else{
System.out.println("比对失败");
public static String yjy(String cont) throws Exception {
System.out.println("明文长度:" + cont.length());
// 第一次压缩
cont = ZipUtil2.compress(cont);
System.out.println("压缩后:" + cont.length());
// 第一次加密
cont = DesUtil.encrypt(cont, DesUtil.PWD_KEY);
System.out.println("加密长度:" + cont.length());
// 第二次压缩
cont = ZipUtil2.compress(cont);
System.out.println("再压缩:" + cont.length());
return cont;
public static String jm(String cont) throws Exception {
System.out.println("-----------------------------");
System.out.println("密文长度:" + cont.length());
// 第一次解压缩
cont = ZipUtil2.uncompress(cont);
System.out.println("解压缩:" + cont.length());
// 第一次解密
cont = DesUtil.decrypt(cont, DesUtil.PWD_KEY);
System.out.println("解密后:" + cont.length());
// 第二次解压缩
cont = ZipUtil2.uncompress(cont);
System.out.println("再解压:" + cont.length());
return cont;
2.import java.io.IOException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;
public class DesUtil {
private final static String DES = "DES";
public final static String PWD_KEY = "MZTHPWDJM";
public final static String ID_KEY = "MZTHIDJM";
public static void main(String[] args) throws Exception {
String data = "xkajsdasdk‘al;ks‘dl;kasl;d";
System.err.println("加密:"+encrypt(data, PWD_KEY));
System.err.println("解密:" +decrypt(encrypt(data, PWD_KEY), PWD_KEY));**
* Description 根据键值进行加密
* @param data
* @param key
* 加密键byte数组
* @return
* @throws Exception
public static String encrypt(String data, String key) throws Exception {
byte[] bt = encrypt(data.getBytes(), key.getBytes());
String strs = new BASE64Encoder().encode(bt);
return strs;
* Description 根据键值进行解密
* @param data
* @param key
* 加密键byte数组
* @return
* @throws IOException
* @throws Exception
*/
public static String decrypt(String data, String key) throws IOException,
Exception {
if (data == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] buf = decoder.decodeBuffer(data);
byte[] bt = decrypt(buf, key.getBytes());
return new String(bt);
* Description 根据键值进行加密
* @param data
* @param key
* 加密键byte数组
* @return
* @throws Exception/
private static byte[] encrypt(byte[] data, byte[] key) throws Exception {
// 生成一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密钥数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);
// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance(DES);
// 用密钥初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
return cipher.doFinal(data);
* Description 根据键值进行解密
* @param data
* @param key
* 加密键byte数组
* @return http://www.huiyi8.com/jiaoben/
* @throws Exception网页特效代码
private static byte[] decrypt(byte[] data, byte[] key) throws Exception {
// 生成一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密钥数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);
// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance(DES);
// 用密钥初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
return cipher.doFinal(data);

java 数据压缩

时间: 2024-10-15 23:40:36

java 数据压缩的相关文章

JAVA上百实例源码以及开源项目

简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬.向往!此时此景,笔者只专注Android.Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能.编辑音乐软件的朋友,这款实例会对你有所帮助.Calendar万年历 1个目标文件EJ

Web---HTTP请求、重定向、转发和数据压缩

HTTP常用的请求方式包括: GET-最为常见,但发送的数据量很小,发送的数据直接包含到url的后面. POST-可以包含大量数据,数据在请求正文中通过表单进行提交. HEAD,PUT,DELETE. 后面三种Tomcat服务器默认都不支持.常用的只有前两种. GET: 发送到服务器的数据出现在URL的后面.最多不能超过1K.如: http://localhost:8080/index.jsp?name=itcast&sex=man&.. POST: 发送到服务器的数据会出现有请求的正文部

Java面试15|网络

1.查看网络的统计信息: netstat -s 结果中显示统计信息,保护收发包,建立连接的数量 netstat -at 列出所有TCP端口 netstat -au 列出所有的UDP端口 netstat -aut 目前正在运行的TCP/UDP服务 netstat常用的参数如下: -s或–statistice 显示网络工作信息统计表. -t或–tcp 显示TCP传输协议的连线状况. -u或–udp 显示UDP传输协议的连线状况. -a或–all 显示所有连接中的Socket. -n或–numeric

[Java基础回顾]Tomact及Http 部分总结.

前言:   刚好今天回来的很早, 总结下 Tomcat及Http的基础知识. 1, Tomcat    web相关概念        web:网页的意思,网页资源包括服务器上的所有资源.            web资源分类:                静态的资源:内容不会发生改变的资源                动态的资源:内容可能发生改变的资源            web技术:                静态的web技术:html css js 等               

java基础---->Zip压缩的使用(转)

java中提供了对压缩格式的数据流的读写.它们封装到现成的IO 类中,以提供压缩功能.下面我们开始java中压缩文件的使用. 目录导航: 关于压缩的简要说明 GZIP压缩文件的使用 ZIP压缩文件的使用 GZIP与ZIP压缩的比较 友情链接 关于压缩的简要说明 一. Java中有着压缩的类: CheckedInputStream GetCheckSum()为任何InputStream 产生校验和(不仅是解压) CheckedOutputStream GetCheckSum()为任何OutputS

轨迹压缩之Douglas-Peucker算法之Java实现

第一部分 问题描述 1.1 具体任务 本次作业任务是轨迹压缩,给定一个GPS数据记录文件,每条记录包含经度和维度两个坐标字段,所有记录的经纬度坐标构成一条轨迹,要求采用合适的压缩算法,使得压缩后轨迹的距离误差小于30m. 1.2 程序输入 本程序输入是一个GPS数据记录文件. 1.3 数据输出 输出形式是文件,包括三部分,压缩后点的ID序列及坐标.点的个数.平均距离误差.压缩率 第二部分 问题解答 根据问题描述,我们对问题进行求解,问题求解分为以下几步: 2.1 数据预处理 本次程序输入为GPS

深入分析 Java I/O 的工作机制

I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动.这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈.本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构:磁盘 I/O 工作机制:网络 I/O 的工作机制:其中以网络 I/O 为重点介绍 Java Socket 的工作方式:你还将了解到 NIO 的工作方式,还有同步和异步以及阻塞与非阻塞的区别,最

java基础篇---HTTP协议

HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:http://www.cnblogs.com/xdp-gacl/p/3751277.html,作者:孤傲苍狼 一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程.客户端连上web服务器后,若想获得

Java 实现 SSH 协议的客户端登录认证方式--转载

背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间能够进行正常的网络通信,不至于出现在一台机器上发出的指令到另一台机器上成了不可认的乱码,SSH 就是众多协议的其中之一.经典的七层 OSI 模型(Open System Interconnection Reference Model)出现后,大大地解决了网络互联的兼容性问题,它将网络划分成服务.接口