Du bist nicht angemeldet.

1

Sonntag, 29. April 2012, 12:22

Eigene Komprimierung

Aus Copyrightgründen kann man schlecht die Huffman-Komprimierung von Knuddels nutzen.

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package eu.knuddelz.net.Security;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;


public class Compressor {
	
	public static byte[] decompress(byte[] compressed) {
    	Inflater decompressor = new Inflater();
    	decompressor.setInput(compressed);
    	ByteArrayOutputStream bos = new ByteArrayOutputStream(compressed.length);

    	// Decompress the data
    	byte[] buf = new byte[1024];
    	while (!decompressor.finished()) {
        	try {
            	int count = decompressor.inflate(buf);
            	bos.write(buf, 0, count);
        	} catch (DataFormatException e) {
        	}
    	}
    	try {
        	bos.close();
    	} catch (IOException e) {
    	}
    	byte[] decompressedData = bos.toByteArray();
    	return decompressedData;
	}
	
	
	public static byte[] compress(String message) throws UnsupportedEncodingException {
    	return compress(message.getBytes());
	}
	public static byte[] compress(byte[] bytes) throws UnsupportedEncodingException {
        	Deflater compressor = new Deflater(Deflater.HUFFMAN_ONLY);
        	compressor.setInput(bytes);
        	compressor.finish();
        	ByteArrayOutputStream bos = new ByteArrayOutputStream(bytes.length);

        	byte[] buf = new byte[1024];
        	while (!compressor.finished()) {
            	int count = compressor.deflate(buf);
            	bos.write(buf, 0, count);
        	}
        	try {
            	bos.close();
        	} catch (IOException e) {	}


        	byte[] compressedData = bos.toByteArray();
        	return compressedData;
    	}
        	
        	
        	
}




Credits nicht an mich, sind aus dem Inet.
QuellCode frei nutzbar.

2

Sonntag, 29. April 2012, 20:23

Aus Copyright Gründen darf man den Emulator überhaupt gar nicht hosten.
Tschüß.

3

Sonntag, 29. April 2012, 20:51

Aus Copyright Gründen darf man den Emulator überhaupt gar nicht hosten.
Richtig, aber für die Leute die tatsächlich vor haben den Komplett selber neu zu schreiben.
So wie ich.

4

Dienstag, 1. Mai 2012, 17:59

Auch dann darf man Huffman benutzen, nach dem Dekompilieren stimmt der Code nicht mehr 100% (wegen des Obfuskierens wahrscheinlich nicht mal mehr 50%) mit dem von Knuddels überein und da können die dir nichts nachweisen. Wenn man ganz sicher gehen will sonst einfach einen anderen Tree benutzen.
Tschüß.

5

Dienstag, 1. Mai 2012, 18:14

Auch dann darf man Huffman benutzen, nach dem Dekompilieren stimmt der Code nicht mehr 100% (wegen des Obfuskierens wahrscheinlich nicht mal mehr 50%) mit dem von Knuddels überein und da können die dir nichts nachweisen. Wenn man ganz sicher gehen will sonst einfach einen anderen Tree benutzen.
Naja nachweisen ist schwer, stimmt schon. Aber warum da was riskieren, wenn es auch ohne geht. Hast du eigentlich eine Statistik wieviel Knuddels da an Traffic spart durch ihren Huffman Tree... Ich komme über den Java-Deflater auf ca. 15% .

6

Dienstag, 1. Mai 2012, 18:28

Ne, schau ich später mal.
Tschüß.