Bitweise Buchstaben verändern!

Status
Nicht offen für weitere Antworten.

Skipy

Mitglied
Hey!
Ich würde gerne einen String oder Char verschlüsseln.
Ich dachte, das ich dafür am einfachsten jedes Zeichen einlese und überall einen Bit negiere (verändere), vorzugsweise bei jedem Buchstaben das 2. Bit (von hinten)!
Bloß hab ich jetzt die Frage, wie bringe ich das hin????? 😀
 
Ich denke, das beste ist, wenn du dir ne eigene verschlüsslungsklasse schreibst. Ich habe bereits eine mit 2 Algos, einmal die Verschlüsslung nach Vigenere, und einmal XOR(die die du meinst, nur das alles negiert wird).
Naja, eine gute Verschlüsselung benötigt meist einen Schlüssel, alle polyalphabetischen verschlüsselungen bauen darauf auf. Wenn du willst schicke ich dir mal den Quelltext oder ich bau dir nen code, wie das dann aussieht, wenn du nur das und das bit negierst.
 
Wie gesagt, ich kenne mich mit dieser Bit-Verscghlüsselung noch nicht so aus!
Du scheinst ja ein richtiger Chefrierer (oder wie das auch imm heißt) zu sein ... 😀
 
hier mal, genau das, was du meintest:

Code:
String klartext="", crypttext;
char newchar;
int pointer=0;
while(pointer < klartext.length()) {
newchar = (klartext.charAt(pointer) >> 1)%2 == 0 ? (int)klartext.charAt(pointer)+2 : (int)klartext.charAt(pointer)-2;
crypttext += newchar;
}
 
Das war der Code, ich habe ihn nicht getestet, aber er sollte funktionieren.
Wenn du eine Frage dazu hast, stell sie einfach, ich versuch es dann zu erklären.
Naja, ich verfasse gerade eine Jahresarbeit über Kryptologie und Steganographie, von daher habe ich mich sehr viel damit befasst. Ich arbeite noch weiter an meiner Cryptklasse, also wenn du eine Aktualisierung möchtest, werde ich sie dir dann mit Dokumentation schicken(es wird z.b. eine Matrizen-Verschlüsslung hinzugefügt.)
Du musst mir nur deine EmailAdresse geben, oder ich stelle sie dir online, wie du möchtest.
 
Mal davon abgesehen das ein Bit invertieren ein ziemlich sinnloser Verschlüsselungsalgorithmus ist
und ich mich in Java wenn irgendwie möglich sowieso von Bit-Manipultionen fernhalten würde,
wird dir hier
Code:
crypttext += newchar;
das Genick brechen 😀
 
komisch!

Ich musste es erst noch einmal casten:
Code:
String klartext="", crypttext = null;
char newchar;
int pointer=0;
while(pointer < klartext.length()) {
newchar = (char) ((klartext.charAt(pointer) >> 1)%2 == 0 ? (int)klartext.charAt(pointer)+2 : (int)klartext.charAt(pointer)-2);
crypttext += newchar;
}

Und anschließend habe ich:
Code:
	System.out.println(crypttext);
gemacht!
Aber da ist nichts bei rausgekommen???
 
Hier der funktionierende Code:

Code:
		String klartext="Hallo", crypttext = ""; 
		char newchar; 
		int pointer=0; 
		while(pointer < klartext.length()) { 
		newchar = (char) ((klartext.charAt(pointer) >> 1)%2 == 0 ? (int)klartext.charAt(pointer)+2 : (int)klartext.charAt(pointer)-2); 
		crypttext = crypttext +  newchar; 
		pointer++;
		}
		System.out.println("cryppttext: " + crypttext);
Aber Wildcard hat recht, es wäre hier nicht gut in der Praxis ein StringObjekt zu verwenden. Besser wäre StringBuffer. Aber, solang du keine großen Dateien verschlüsselst, wird es schon funktionieren.
 
Mit StringBuffer, ohne unnötige Casts und mit der Empfehlung sowas besser nicht zu machen und sinnvollere Algorithmen (sicher und ohne bitshift) zu verwenden :wink:
Code:
       String klartext="Hallo";
        StringBuffer crypttext = new StringBuffer(); 
        char newchar; 
        int pointer=0; 
        while(pointer < klartext.length()) { 
        newchar = (char) ((klartext.charAt(pointer) >> 1)%2 == 0 ? klartext.charAt(pointer)+2 : klartext.charAt(pointer)-2); 
        crypttext.append(newchar); 
        pointer++; 
        } 
        System.out.println("cryppttext: " + crypttext);
 
Ja, du hast Recht, der Algorythmus lässt zu wünschen üprig. ^^
Aber ich habe ihm ja angeboten ihm einen Vigenere und einen XOR Alogrythmus mit Schlüsselprinzip zu schicken.
Du musst mir nur noch deine EmailAdresse geben.
 
Ja, du hast Recht, der Algorythmus lässt zu wünschen üprig. ^^
Aber ich habe ihm ja angeboten ihm einen Vigenere und einen XOR Alogrythmus mit Schlüsselprinzip zu schicken.
Selbes Problem. Hobbymässig mag das ja ok sein, man sollte sich nur im klaren sein, das man seine Daten damit nicht besser verschlüsseln kann, als wenn man auf jedem 'i' den Punkt weglässt 😀
Das Problem ist das ein selbst gebastelter asymetrischer Algorithmus i.d.R. leider auch stark zu wünschen übrig lässt...
Insofer sollte man sich im klaren sein das das absolut nichts mit echter Verschlüsselung zu tun hat :wink:
 
Naja, Vigenere, DES und dergleichen sind alle symmetrische Algorythmen und werden heute noch eingesetzt(Vigenere selbst nicht, eben nur Abwandlungen).
Ich denke, dass es unglaublic schwer ist einen guten assymetrischen Algorythmus zu entwickeln. Schließlich haben 3 Mathemarikprofessoren dafür Monate benötigt(ich glaube es war RSA). Aber Hobbymäßig ist es ok, find ich auch.
 
Was ich nie verstehen kann: Warum nutzen scheinbar so wenige JCA und JCE?

Natürlich ist es praktisch selber ein bisschen rumzuprobieren, aber für ernsthafte Anwendungen sollte man doch eher auf das bestehende Framework zurückgreifen....
 
Naja, Vigenere, DES und dergleichen sind alle symmetrische Algorythmen und werden heute noch eingesetzt
Bitte korrigieren wenn ich falsch liege, aber soweit ich weiß werden die nur noch in Kombination mit asymetrischen eingesetzt?
Ich denke, dass es unglaublic schwer ist einen guten assymetrischen Algorythmus zu entwickeln. Schließlich haben 3 Mathemarikprofessoren dafür Monate benötigt(ich glaube es war RSA). Aber Hobbymäßig ist es ok, find ich auch.
Geht ja auch nicht darum selbst einen zu entwickeln.
Aber beispielsweise einen RSA selbst zu implementieren ist IMHO interessanter als 'dreh ein Bit rum" :wink:
[edit]das ist natürlich auch nur Hobby, da der normal Programmierer wohl nicht ausreichend große Primzahlen verwenden wird[/edit]
 
Achso, jetzt verstehe ich, was du meist.
Das implementieren von einem asymetrischem Algorythmus ist schon sehr viel interessanter, das stimmt. Aber das mit dem Primzahlen ist wie du sagtest ein großes Problem, wenn der Algorythmus ernst sein soll.
Als DES von einem besonderem Chip(weis nicht mehr wie er heißt) geknackt wurde(in einem Tag, glaube ich), hat man TrippleDES entwickelt. Das wird heut tatsächlich noch verwendet(AES ich glaub auch).
 
Wildcard hat gesagt.:
[edit]das ist natürlich auch nur Hobby, da der normal Programmierer wohl nicht ausreichend große Primzahlen verwenden wird[/edit]
stattdessen sollten wir besser an einem guten algo arbeiten der "n" in die beiden Primzahlen p und q zerlegt 😉

Man sollte noch anmerken: TripleDES ist nicht drei mal so sicher wie DES..
 
mic_checker hat gesagt.:
stattdessen sollten wir besser an einem guten algo arbeiten der "n" in die beiden Primzahlen p und q zerlegt
Ist das eigentlich auch als np-vollständig eingeordnet? Gibts ne Million zu gewinnen? 😀
 
lol
2048-bit-key! Will jetzt gar nicht ausrechnen wie lange man da auf seinen Preis warten muss :cry:
Ich sortier derweilen mal die Türme von Hanoi :bae:
 
Naja, falls jemandem langweilig ist:

25195908475657893494027183240048398571429282126204
03202777713783604366202070759555626401852588078440
69182906412495150821892985591491761845028084891200
72844992687392807287776735971418347270261896375014
97182469116507761337985909570009733045974880842840
17974291006424586918171951187461215151726546322822
16869987549182422433637259085141865462043576798423
38718477444792073993423658482382428119816381501067
48104516603773060562016196762561338441436038339044
14952634432190114657544454178424020924616515723350
77870774981712577246796292638635637328991215483143
81678998850404453640235273819513786365643912120103
97122822120720357

http://www.rsasecurity.com/rsalabs/node.asp?id=2093

Ich find die Theamatik zumindest interessant, auch wenn ich wohl im meinem ganzen Leben die beiden Primzahlen nicht rausfinden werde 😉
 
Deinen Code hätte ich schon gerne!
Sorry - hab vergessen meine E-Mail anzugeben! In meinem Profil sollte sie jetzt jedenfalls drin stehen ....
Wenns nicht klappt, bitte nochmal melden.
Vielen Dank aber schon Mal.
 
Vielen Dank für die Links!
Ich wieß: "Zum Proggen, sollte man Englisch schon beherschen"!
Aber es stress trotzdem immer wieder solche Texte zu lesen!
Was ich hab bis jetzt gelsesen habe war erste Sahne -> vielen Dank!

:!: Falls einer von euch Jungs (mädels) mal Zeit haben sollte das ganze auf Deutsch zu übersetzten, bekommt er von mir einen Orden :!:
:### 😀
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben