XOR-Verschlüsselung

Status
Nicht offen für weitere Antworten.
S

silver

Gast
Hi @ all,
ich wollte mir eine simple Verschlüsselung basteln und habe nur ein kleines Problem,
dass ich irgendwie nicht verstehe! Es handelt sich um die XOR-Verschlüsselung
(ich habe auch die Forensuche benutzt und solche Themen gefunden, jedoch hab ich mir
das ein wenig anderster vorgestellt) und es scheint so als würde alles funktionieren außer
meine XOR() Methode. Ich habe durch Kontrollausgaben feststellen können, dass das XOR
richtig berechnet wird, jedoch ist der Rückgabewert nicht korrekt!!!

Code:
public class CDataEncryptionStandard {
	private String message;
	private String key="3db58a9f";
	private int length=8;
	
	public CDataEncryptionStandard(String msg) {
		while(msg.length()>8&&this.length/msg.length()<1) this.length+=8;
		message=msg;
	}

	public void getMSG() {
		System.out.println("MSG: "+message);
	}

	private String Str2Bin() {
		String binStr="";
		for(int i=0;i<this.length;i++) {
			if(i<message.length()) {
				int chr=(int)message.charAt(i),init=128;
				String tmp=Integer.toBinaryString((int)(message.charAt(i)));
					while(chr<init) {
						binStr+="0";
						init/=2;
					}
				binStr+=tmp;
			}
			else binStr+="11111111";
		}
		return binStr;
	}

	private String Bin2Str() {
		String str="";
		for(int i=0;i<message.length();i+=8) {
			int tmp=0,init=128;
				for(int j=i;j<i+8;j++) {
					if(message.charAt(j)!='0') tmp+=init;
					init/=2;
				}
				if(tmp!=255) str+=(char)tmp;
		}
		return str;
	}

	private String getBinKey() {
		String binStr="";
		for(int i=0;i<key.length();i++) {
			int chr=(int)key.charAt(i),init=128;
			String tmp=Integer.toBinaryString((int)(key.charAt(i)));
				while(chr<init) {
					binStr+="0";
					init/=2;
				}
			binStr+=tmp;
		}
		return binStr;
	}

	private String XOR() {
		String str="";
		for(int i=0,j=0;i<message.length();i++,j++) {
			if(i%8==0&&i!=0) j=0;
			str+=message.charAt(i)^key.charAt(j);
		}
		return str;
	}

	public void decrypt() {
		message=Str2Bin();
		key=getBinKey();
		message=XOR();
		message=Bin2Str();
	}
/*
	public void encrypt() {
	
	}
*/
	public static void main(String[] args) {
		CDataEncryptionStandard cdes=new CDataEncryptionStandard("Hallo");
		cdes.getMSG();
		cdes.decrypt();
		cdes.getMSG();
	}

}
 
S

silver

Gast
Kann ich nicht genau sagen, jedoch dürfen die letzten drei Zeichen nicht die selben sein, da die letzten drei Zeichen vom Schlüssel unterschiedlich sind!

01001000 01100001 01101100 01101100 01101111 11111111 11111111 11111111 // Hallo Binär
00110011 01100100 01100010 00110101 00111000 01100001 00111001 01100110 // Schlüssel Binär
----------------------------------------------------------------------------------------------------------------------
01111011 01010010 01011111 01011111 01011100 11001100 11001100 11001100 // XOR

Der Anfang stimmt in etwa, aber dann kommt an der 10ten Stelle 1^1=1 raus und das stimmt net!
Wenn ich mir Kontrollausgaben mache dann stimmt aber die XOR berechnung daher gehe ich davon aus,
dass irgendwo anderster was nicht stimmt!
 

KSG9|sebastian

Top Contributor
aeh ???? die binärfolge bei XOR ist doch falsch?!

0 xor 0 = 0
1 xor 0 = 1
0 xor 1 = 1
1 xor 1 = 0

somit

01001000 01100001 01101100 01101100 01101111 11111111 11111111 11111111 // Hallo Binär
00110011 01100100 01100010 00110101 00111000 01100001 00111001 01100110 // Schlüssel Binär
----------------------------------------------------------------------------------------------------------------------
01111011 00000101 00001110 01011001 01010111 10011110 11000111 10011001 // XOR

So wär das eigentlich korrekt...
 
S

silver

Gast
genau das ist mein Problem das funktioniert eben nicht richtig, jedoch bin ich der Meinung, dass der Rückgabewert oder was am String nicht stimmt! Das müsste doch möglich sein mit str+=message.charAt(i)^key.charAt(j); oder?
 
G

Guest

Gast
autsch, jetzt hab ich meinen Fehler gefunden! ich dachte noch, dass der Schlüssel die Länge 8 hätte, aber da hat in Binärer Form ja 64!!! Zeile 63 muss also so ausehen: if(i%64==0&&i!=0) j=0;
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Cäsar Verschlüsselung Java Basics - Anfänger-Themen 8
Camoflasche RSA Verschlüsselung Java Basics - Anfänger-Themen 0
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M Verschlüsselung mit replace() Java Basics - Anfänger-Themen 35
P Cäsear verschlüsselung irgendwas passt noch nicht Java Basics - Anfänger-Themen 2
A Methoden Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 13
E Einfache Java Verschlüsselung Java Basics - Anfänger-Themen 4
N Erste Schritte JFrame Caesar-Verschlüsselung Java Basics - Anfänger-Themen 23
Y Caesar Verschlüsselung Fehler Java Basics - Anfänger-Themen 4
Ä Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 5
N Caesar Verschlüsselung Java Basics - Anfänger-Themen 2
L Interpreter-Fehler RSA Verschlüsselung Fehler Java Basics - Anfänger-Themen 2
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
M Erste Schritte Verschlüsselung / Login-Sicherheit Java Basics - Anfänger-Themen 8
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
A Vigenere Verschlüsselung Java Basics - Anfänger-Themen 2
B RSA Verschlüsselung für Aktivierunscode Java Basics - Anfänger-Themen 7
T Array Verschlüsselung Java Basics - Anfänger-Themen 5
Z Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
V Permutation, Verschlüsselung Java Basics - Anfänger-Themen 19
H Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
S Caesar Verschlüsselung Start Hilfe Java Basics - Anfänger-Themen 4
K Symmetrische Verschlüsselung von TextArea Java Basics - Anfänger-Themen 7
U Problem mit Verschlüsselung Java Basics - Anfänger-Themen 2
C Frage zu RSA-Verschlüsselung Java Basics - Anfänger-Themen 3
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
H Caesar-Verschlüsselung - Was stimmt nicht? Java Basics - Anfänger-Themen 6
V Ceasar Verschlüsselung Java Basics - Anfänger-Themen 9
D Verschlüsselung mit Java Java Basics - Anfänger-Themen 8
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
C Verschlüsselung Java Basics - Anfänger-Themen 8
R Frage zu Cäsar - Verschlüsselung! Java Basics - Anfänger-Themen 10
I Rc4 Verschlüsselung in BlueJ Java Basics - Anfänger-Themen 18
D Verschlüsselung Java Basics - Anfänger-Themen 4
C Compiler-Fehler Verschlüsselung Java Basics - Anfänger-Themen 2
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
S Caesar-Verschlüsselung Problem/Frage Java Basics - Anfänger-Themen 4
D Java Password verschlüsselung Java Basics - Anfänger-Themen 6
P RSA Verschlüsselung kleines Problem Java Basics - Anfänger-Themen 5
R Verschlüsselung von String Java Basics - Anfänger-Themen 4
J Cäsar Verschlüsselung Java Basics - Anfänger-Themen 12
G Verschlüsselung und Entschlüsselung von Texten Java Basics - Anfänger-Themen 7
D Java Verschlüsselung Java Basics - Anfänger-Themen 8
O Verschlüsselung mit Cipher & Key Java Basics - Anfänger-Themen 9
A Vigenere Verschlüsselung Java Basics - Anfänger-Themen 2
K Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
S Hill Verschlüsselung Java Basics - Anfänger-Themen 10
A Einfache java Verschlüsselung HILFE Java Basics - Anfänger-Themen 3
W Xor-Verschlüsselung Java Basics - Anfänger-Themen 15
Y verschlüsselung Java Basics - Anfänger-Themen 10
T Frage zur Verschlüsselung (RSA) Java Basics - Anfänger-Themen 6
A Java Verschlüsselung/Cipher Java Basics - Anfänger-Themen 12
S Verschlüsselung Key Splitting Java Basics - Anfänger-Themen 2
B Again, Verschlüsselung Java Basics - Anfänger-Themen 3
M Caeser Verschlüsselung ganz einfach(nicht für mich) Java Basics - Anfänger-Themen 6
L Frage zur Verschlüsselung in java Java Basics - Anfänger-Themen 3
D Verschlüsselung Java Basics - Anfänger-Themen 4
A verschlüsselung Java Basics - Anfänger-Themen 7
G Vergleich bei MD5-Verschlüsselung Java Basics - Anfänger-Themen 3
zilti md5-Verschlüsselung? Java Basics - Anfänger-Themen 7
L Caesar-Verschlüsselung programmieren Java Basics - Anfänger-Themen 12
Lazybone Vigenere Verschlüsselung funktioniert nicht richtig Java Basics - Anfänger-Themen 8
U "Einfache Verschlüsselung" Java Basics - Anfänger-Themen 17
K Verschlüsselung Java Basics - Anfänger-Themen 8
E Verschlüsselung mithilfe von Array Java Basics - Anfänger-Themen 2
S SHA? Hashcodes, Blowfish Verschlüsselung Java Basics - Anfänger-Themen 7
L Java und PGP Verschlüsselung, wie...??? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben