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????? :D
 
G

Guest

Gast
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.
 

Skipy

Mitglied
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 ... :D
 
G

Guest

Gast
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;
}
 
G

Guest

Gast
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.
 

Wildcard

Top Contributor
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 :D
 

Skipy

Mitglied
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???
 
G

Guest

Gast
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.
 

Wildcard

Top Contributor
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);
 
G

Guest

Gast
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.
 

Wildcard

Top Contributor
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 :D
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:
 
G

Guest

Gast
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.
 

mic_checker

Top Contributor
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....
 

Wildcard

Top Contributor
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]
 
G

Guest

Gast
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).
 

mic_checker

Top Contributor
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..
 

Wildcard

Top Contributor
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? :D
 

Wildcard

Top Contributor
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:
 

mic_checker

Top Contributor
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 ;)
 

Skipy

Mitglied
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.
 

Skipy

Mitglied
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 :!:
:### :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
P Bitweise Operatoren Java Basics - Anfänger-Themen 2
Phillip Bitweise Operatoren Java Basics - Anfänger-Themen 11
A Bitweise Operatoren Java Basics - Anfänger-Themen 1
Z Bitweise tauschen Java Basics - Anfänger-Themen 12
A string bitweise in long umwandeln Java Basics - Anfänger-Themen 7
G Logische und Bitweise Operatoren Java Basics - Anfänger-Themen 2
M Datentypen Bitweise Dividieren Java Basics - Anfänger-Themen 3
J Bitweise addieren Java Basics - Anfänger-Themen 6
V Bitweise Operatoren in der Grafikprogrammierung Java Basics - Anfänger-Themen 2
S Bitweise Verarbeitung? Java Basics - Anfänger-Themen 7
S byte-array bitweise auslesen Java Basics - Anfänger-Themen 14
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
L Buchstaben entfernen zipZap Java Basics - Anfänger-Themen 8
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
H Buchstaben zählen Java Basics - Anfänger-Themen 9
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Tom/S KeyCode zu Buchstaben Java Basics - Anfänger-Themen 0
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
O FilterStream häufigkeit der Buchstaben Java Basics - Anfänger-Themen 43
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
x-tshainge Zahlen Buchstaben zuordnen Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
M replace Methode für Buchstaben Java Basics - Anfänger-Themen 29
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
J Methoden Eingabe Methode nur Buchstaben Java Basics - Anfänger-Themen 4
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Zufällige Buchstaben Java Basics - Anfänger-Themen 45
C Klassen Positionszähler auf Buchstaben setzen Java Basics - Anfänger-Themen 14
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Input/Output Buchstaben in Eingabe finden und ausgeben Java Basics - Anfänger-Themen 5
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
Bregedur String beim nächstem groß geschriebenen Buchstaben trennen Java Basics - Anfänger-Themen 1
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F Häufigkeit von Buchstaben Java Basics - Anfänger-Themen 7
L Java Strings Buchstaben vertauschen Java Basics - Anfänger-Themen 4
G Erste Schritte Einen Array absuchen und Buchstaben zählen Java Basics - Anfänger-Themen 17
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
M String überprüfen ob nur Buchstaben enthalten sind? Java Basics - Anfänger-Themen 10
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
B Zahlen und Buchstaben in cmd eingeben Java Basics - Anfänger-Themen 5
J Buchstaben aus String einzeln Zählen Java Basics - Anfänger-Themen 12
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
V Zufallsgenerator für Buchstaben Java Basics - Anfänger-Themen 22
A Erste Schritte konsoleneingabe von Buchstaben Java Basics - Anfänger-Themen 3
M Von File lesen Buchstaben lesen und zählen - scheitert an der Eingabe Java Basics - Anfänger-Themen 4
K Methoden Kontrollstruktur versagt bei Buchstaben... Java Basics - Anfänger-Themen 6
E Buchstaben nach Größe vergleichen Java Basics - Anfänger-Themen 4
M Benennung nach Buchstaben Java Basics - Anfänger-Themen 18
M Erste Schritte zwei Buchstaben die im String enthalten sind ausgeben Java Basics - Anfänger-Themen 21
J Programm zum Buchstaben austauschen, logikproblem Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
P toUpperCase() - Buchstaben die ersetzt werden als Großbuchstaben ausgeben Java Basics - Anfänger-Themen 5
R Regexp nur Buchstaben und Ziffener beliebig oft Java Basics - Anfänger-Themen 3
S Buchstaben/Wörter im String zählen Java Basics - Anfänger-Themen 6
R buchstaben einlesen - fehlermeldung schreiben? Java Basics - Anfänger-Themen 9
M String (mit Buchstaben) zu Int Java Basics - Anfänger-Themen 6
D Buchstaben den jeweiligen Zahlen hinzufügen mit einer if. Java Basics - Anfänger-Themen 6
F Datentypen Zufällige Buchstaben vertauschen Java Basics - Anfänger-Themen 3
K Zahlen und buchstaben gemeinsam in ein array? Java Basics - Anfänger-Themen 17
F Leerzeichen zwischen jeden Buchstaben eines Strings einfügen Java Basics - Anfänger-Themen 16
J Buchstaben zählen Java Basics - Anfänger-Themen 17
H String zerlegen in einzelne Buchstaben (char)?? Java Basics - Anfänger-Themen 7
R buchstaben zählen Java Basics - Anfänger-Themen 8
R In einem Palindrom 2 Buchstaben vergleichen Java Basics - Anfänger-Themen 16
J Anzahl der Buchstaben in einem String Java Basics - Anfänger-Themen 12
P Buchstaben: Haeufigkeitstabelle Java Basics - Anfänger-Themen 9
S String Elemente bzw. Buchstaben miteinander vertauschen? Java Basics - Anfänger-Themen 6
T JTextField max. 8 Zeichen, nur Buchstaben Java Basics - Anfänger-Themen 8
M jeden 2ten Buchstaben aus array Java Basics - Anfänger-Themen 6
C ASCII Codes in Buchstaben umwandeln Java Basics - Anfänger-Themen 2
J Buchstaben einlesen Java Basics - Anfänger-Themen 8
V Anzahl eines Buchstaben in einem String zählen Java Basics - Anfänger-Themen 7
J Buchstaben zählen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben