Mega Code Archive

 
Categories / Java / File Input Output
 

Compress byte array

/* This file is part of Socks via HTTP. This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Socks via HTTP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Socks via HTTP; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  */ // Title :        ByteUtils.java // Version :      1.2 // Copyright :    Copyright (c) 2001-2002 // Author :       Florent CUETO  & Sebastien LEBRETON <socksviahttp@cqs.dyndns.org> // Description :  Class to manipulate bytes //package socksviahttp.core.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; public class ByteUtils {   public static byte[] packRaw(byte[] b) throws IOException {     ByteArrayOutputStream baos = new ByteArrayOutputStream();     GZIPOutputStream zos = new GZIPOutputStream(baos);     zos.write(b);     zos.close();     return baos.toByteArray();   }   public static byte[] unpackRaw(byte[] b) throws IOException {     ByteArrayOutputStream baos = new ByteArrayOutputStream();     ByteArrayInputStream bais = new ByteArrayInputStream(b);     GZIPInputStream zis = new GZIPInputStream(bais);     byte[] tmpBuffer = new byte[256];     int n;     while ((n = zis.read(tmpBuffer)) >= 0)       baos.write(tmpBuffer, 0, n);     zis.close();     return baos.toByteArray();   }   public static byte[] encryptRaw(byte[] key, byte[] b) throws IOException {     ByteArrayOutputStream baos = new ByteArrayOutputStream();     for (int i = 0; i < b.length; i++) {       baos.write(b[i] ^ key[i % key.length]);     }     // baos.close();     return (baos.toByteArray());   }   public static byte[] decryptRaw(byte[] key, byte[] b) throws IOException {     return (encryptRaw(key, b));   } }