Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Verschlüsselungs Programm
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 20.06.2007, 17:49    Titel: Verschlüsselungs Programm Antworten mit Zitat

Ich hab aus langerweile ein Verschlüsselungs prog geschrieben mit dem ich Daten aus einer Datei binar auslese und dann zeichen für zeichen über den ASCII code umwandle in ein anderes Zeichen. Mein Problem ist das wenn das Zeichen mit dem ASCII code 0 in der Verschlüsselten datei steht lässt sich der nachfolgende Text nicht auslesen. Bsp:

Original:Hallo Thorben
Entschlüsselt:Hallo Th

Ich hoffe ihr versteht mein Problem und könnt mir helfen.

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 17:53    Titel: Antworten mit Zitat

als ushort dimmen zwinkern unter 0 gehts dann von 255 abwärts;

alternativ:

http://csderats.cs.funpic.de/index.php?section=proggen#vernam-block

neetttes beispiel zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick


Zuletzt bearbeitet von csde_rats am 20.06.2007, 17:55, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.06.2007, 17:53    Titel: Antworten mit Zitat

Wenn du tatsächlich binär ausliest, sollte das nicht das Problem sein. Welche Art von Strings verwendest du?
Imho werden nur bei ZStrings 0-Bytes zur Terminierung genutzt. :/

/edit:
Des Weiteren ist der Code bei solchen Dingen enorm nützlich, Glaskugeln arbeiten nämlich nur unter äußerst ungünstigen Zeiten. Zunge rausstrecken zwinkern

@csderats:
Es geht ihm hier nicht um das Kopieren, sondern um direkt sein Problem.
Und UShort ist 0-65535, UByte ist 0-255. Zunge rausstrecken mit den Augen rollen
_________________
Eine handvoll Glück reicht nie für zwei.
--


Zuletzt bearbeitet von Mao am 20.06.2007, 17:55, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.06.2007, 17:55    Titel: Antworten mit Zitat

CSDERats hat Folgendes geschrieben:
als ushort dimmen zwinkern unter 0 gehts dann von 255 abwärts;


Das tut echt weh, Junge... wenn du von 0 - 255 haben willst, muss es UByte sein, bei UShort isses 0-65535... peinlich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 17:55    Titel: Antworten mit Zitat

PMedia hat Folgendes geschrieben:
CSDERats hat Folgendes geschrieben:
als ushort dimmen zwinkern unter 0 gehts dann von 255 abwärts;


Das tut echt weh, Junge... wenn du von 0 - 255 haben willst, muss es UByte sein, bei UShort isses 0-65535... peinlich


verlegen kann ja ma vorkommen happy
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 20.06.2007, 18:07    Titel: Antworten mit Zitat

Hab schon alles probiert. Hab den Typ, der beim rechnen verwendet wird, sogar schon auf INTEGER umgestellt das sollte reichen.

Code:


DIM TmpString       AS STRING * 512
DIM TmpString2      AS STRING

OPEN SourceFile FOR BINARY AS #FileNo

DO
                           
   GET #1,, TmpString
                         
   TmpString2 += TmpString
                           
LOOP UNTIL EOF(1)   

CLOSE #FileNo


So sieht in etwa meine Rutine aus zu auslesen der Verschlüsselten Datei.

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 20.06.2007, 19:08    Titel: Antworten mit Zitat

Ich hab nochmal ein kleines Beispiel Prog geschrieben welches mein Problem verdeutlichen sollte.

Code:

   DIM WriteStr AS STRING
   DIM ReadStr  AS STRING * 32
   DIM PrintStr AS STRING

   WriteStr = "Das ist " + CHR$( 0 ) + "ein Test"

   OPEN "test5.txt" FOR OUTPUT AS #1
   
   CLOSE #1
   
   OPEN "test5.txt" FOR BINARY AS #1
     
      PUT #1,, WriteStr
     
   CLOSE #1
   
   OPEN "test5.txt" FOR BINARY AS #1
   
      GET #1,, ReadStr
   
   CLOSE #1
   
   PrintStr = ReadStr
   
   LOCATE 2,2: PRINT "Value PrintStr:  " + PrintStr
   LOCATE 4,2: PRINT "Laenge PrintStr: " + STR$( LEN( PrintStr ) )
   
   FOR i = 1 TO LEN( PrintStr )
      LOCATE 6 + i, 2: PRINT MID$( PrintStr , i , 1 ), PrintStr[ i - 1 ]
   NEXT i
   
   SLEEP: END


Das Problem ist das Unten nur "Das ist " ausgegeben wird der Rest fällt weg. Ich kann mir das nicht erklären. Ihr? Wenn ja wo ist der Fehler was muss ich anders machen?

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.06.2007, 19:16    Titel: Antworten mit Zitat

Ich nehme an das es was mit den steuerzeichen zu tun hat, was und wie chr(0) kann ich leider nicht erklaeren, aber wenn Du 0 durch 255 ersetzt hast vielleicht das gewuenschte ergebnis
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 20.06.2007, 19:27    Titel: Antworten mit Zitat

Danke aber:

Es ist mir bewusst das das mit 255 geht. Mein Problem stark vereinfacht:
Ich habe z.b. den Buschstaben "D" ASCII=68 wenn dieser Buchstabe jetzt, weil er ja verschlüsselt werden soll, um z.B. 68 Zeichen nach hinten verschoben wird hat er ASCII=0 Den Wert schreibe ich dann in eine Datei und was beim Auslesen dann passiert solltet man an meinem Beispiel sehen s.o.. In diesem fall kann ich aber 0 nicht durch 255 ersetzen weil das ein komplett falsches Ergebniss bei der Entschlüsselung liefern kann.

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.06.2007, 19:31    Titel: Antworten mit Zitat

ok, das leuchtet mir ein...
aber je nachdem was Du verschluesseln willst, ist es unwahscheinlich das ein chr(0) auf den Bildschrim ausgeben wirst...

denn chr(0) ist gespeichert und wird auch ausgelesen, es wird nur nicht auf den Bildschirm ausgegeben... wie gesagt, kann es nicht genau erklaeren.

aber wenn Du nun vor der Ausgabe ?len(ReadStr) wirst Du sehen das ReadStr eine zeichenkette von 17 Zeichen ist, wie es ja auch sein sollte...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 20.06.2007, 19:36    Titel: Antworten mit Zitat

Ich habe es gerade ausprobiert und bei mir ist LEN(ReadStr) = 7 aber nicht 17.

/edit:

Wenn ich die Datei zeichenweise auslese gehts. Das dauert bei größeren Datein nur ein bichen zu lange.

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.06.2007, 19:45    Titel: Antworten mit Zitat

Ja, mir war da ein fehler beim testen unterlaufen...
und wollte Dir das mit dem zeichenweise gerade vorschlagen....

Code:

Dim Reader as String
Dim Writer as String


Dim Text1 as string
    Text1="Das ist "+chr(0)+"ein Test"

?Text1,len(text1)

Open "VTestX.txt" for binary access write as #1
    put #1,,Text1
Close #1

Dim Text2 as string *17
Dim Text as string
Open "VTestX.txt" for binary access read as #1
    get #1,,Text2
Close #1
Text=Text2
?Text2
?Text,len(text)

sleep


Ich habe es gerade selbst noch einmal getestet, die zeichen werden zwar richtig gespeichert und auch wieder richtig ausgelesen, aber irgendwas lasuft bei der uebergabe falsch...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 20.06.2007, 20:08    Titel: Antworten mit Zitat

Auch die Ausgabe in verbindung mit einem Weiterem String funktioniert nicht
z.B. PRINT "Ausgabe: " + Text2

Irgenwie merkwürdig ich kann mir das nicht erklären.

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 20:42    Titel: Antworten mit Zitat

csderats hat Folgendes geschrieben:

http://csderats.cs.funpic.de/index.php?section=proggen#vernam-block

neetttes beispiel zwinkern



musste mich einfach mal selbst zitieren happy
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 20.06.2007, 20:44    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
@csderats:
Es geht ihm hier nicht um das Kopieren, sondern um direkt sein Problem.


muss einfach mal Mao zitieren... mit den Augen rollen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 21:22    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
Mao hat Folgendes geschrieben:
@csderats:
Es geht ihm hier nicht um das Kopieren, sondern um direkt sein Problem.


muss einfach mal Mao zitieren... mit den Augen rollen


muss enfach mal Jojo zitieren... mit den Augen rollen Zunge rausstrecken

da ist ein beispiel


wie mans machen kann

und da werden selbst ochars ausgegeben Zunge rausstrecken
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 21.06.2007, 08:29    Titel: Antworten mit Zitat

Also das ganze Hilft mir nicht recht weiter.
Da mehr als eine Kapute Quell Datei bzw Ziel Datei oder die Ausgabe das der Schluessel Ungültig ist konnte ich deinem Programm noch nicht entlocken. Mir scheint das so als hätte dein Prog auch probleme mit Zeichen die den ASCII code 0 haben.

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 21.06.2007, 12:47    Titel: Antworten mit Zitat

csderats:
Aber es hat halt nix beigetragen und war nichts weiter als Werbung. mit den Augen rollen
(Wogegen ich auch nichts hab, wenn es der Diskussion dienlich ist...Aber in diesem Fall ging's um sein Programm. Hätte er um ein Verschlüsselungsprogramm gefragt, wär das schon wieder was anderes...)
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 21.06.2007, 17:31    Titel: Antworten mit Zitat

Hat jemand von euch jetzt noch ne Idee woran das liegt oder wie ich das Problem lösen kann?

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.06.2007, 17:46    Titel: Antworten mit Zitat

da du ja mit BINARY dateien behandelst, muss man schonmal (eigentlich) nicht von einem fehler mit steuerzeichen wie chr(0) ausgehen...

notfalls mach's nicht so quick and dirty, sondenr eher so:

Code:

code = asc(mid(text, i, 1))
code += verschluesselungszahl
if code > 255 then code -= 255
mid(text, i, 1) = code


ist halt einfach gehalten, funzt dafür aber. wichtig ist dabei, dass code ein SHORT ist.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz