Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
Verfasst am: 23.05.2008, 19:54 Titel: Verschlüssler |
|
|
ich bin erst seit kurzen dabei und habe mir so en kleines prog gemacht was eingaben in zahlen verwandelt so ne art verschlüssler
die zahlen sind festgelegt
habe auch befehle gemacht
clean reinigt bildschirm
master zeigt die zahlen an in denen die buchstaben und zeichen versetzt werden
end beendet das prog
da ich nicht den code kopieren konnte habe ich die exe auf der seite
http://www.materialordner.de/7saksFuYetcoYv0MhJqGbewuClxV4eW1.html
hochgeladen wo sie noch für 48 stunden ist
ist mein erstes (richtiges) programm
hoffe es gefällt euch  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 23.05.2008, 20:43 Titel: |
|
|
Hallo,
du kannst deinen Quelltext in QB einfach im Textformat speichern
und die BAS-Datei dann im Editor öffnen. Dann kannst du den Quelltext bequem kopieren und in fb:porticula einfügen. "Dass man sich anmelden muss", liegt daran, dass der Download zu dem Zeitpunkt, wo du geschaut hast, noch nicht von der Redaktion freigegeben worden ist und nur für dich sichtbar / abrufbar ist. In die Downloadrubrik gehören aber auch eher fertige und größere Programme, sofern man nicht irgendwelche Binärdateien (BMPs oder sowas) mitliefern muss. Für dein Programm wäre fb:porticula besser geeignet. Zum Abrufen von Downloads und Porticula-Codes muss man sich nicht anmelden. Downloads (EXE-/ZIP-Dateien) müssen zum Schutz vor Viren etc. allerdings erst von der Redaktion durchleuchtet werden, ehe sie für alle Besucher downloadbar sind.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
|
Nach oben |
|
 |
jensma

Anmeldungsdatum: 16.05.2005 Beiträge: 85 Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!
|
Verfasst am: 23.05.2008, 21:05 Titel: |
|
|
Abenteuerlich.. |
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
Verfasst am: 23.05.2008, 21:06 Titel: |
|
|
wie meintst du das |
|
Nach oben |
|
 |
jensma

Anmeldungsdatum: 16.05.2005 Beiträge: 85 Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!
|
Verfasst am: 23.05.2008, 21:08 Titel: |
|
|
apollo26 hat Folgendes geschrieben: | wie meintst du das |
Mhh.. mit der Zeilenanzahl hätte man sicherlich einen Logarithmus schreiben können, der geheimdienstkomform Daten verschlüsselt  |
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
Verfasst am: 23.05.2008, 21:21 Titel: |
|
|
das ganze war einfach ma so ne idee um q-basic befehle zu testen
und was vernünftiges zu machen und was ist eigentlich ein logarithmus
wie findest du das programm beim ausführen nun eigentlich?
oder verändert ausgedrückt
66 52 57 5 28 52 88 19 57 41 33 5 548 5 972 5 88 59 88 5 57 52 58 57
88 33 13 52 26 50 5 8
sehe mir morgen die antworten an |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
Verfasst am: 23.05.2008, 22:16 Titel: |
|
|
ma ne frage hatt einer von euch sich ma mein prog angesehen
und getestet |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 23.05.2008, 23:24 Titel: |
|
|
Hallo,
für den Anfang ist es sicher nicht schlecht!
Ein Programm, das einen Text in Zahlen umwandelt, wäre aber eigentlich auch viel einfacher zu haben:
Code: | Dim Eingabe As String, i As Integer
CLS
INPUT "Texteingabe: ", Eingabe
IF Eingabe = "" THEN END
PRINT "Ausgabe: ";
FOR i = 1 TO LEN(Eingabe)
PRINT LTRIM$(STR$(ASC(MID$(Eingabe,i,1)))); " ";
NEXT i
PRINT
PRINT "Fertig. Beliebige Taste zum Beenden druecken."
SLEEP
END |
Das Programm kann beliebige Eingaben und nicht bloß ein paar Wörter verarbeiten und kommt mit einem Bruchteil der Zahlen aus. Die Code-Länge ist natürlich noch optimierbar.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Random
Anmeldungsdatum: 09.03.2006 Beiträge: 47
|
Verfasst am: 24.05.2008, 07:45 Titel: |
|
|
Ich hab da auch mal etwas gebastelt, das aber mit Binärzahlen funktioniert. Meine Überlegung dabei war, dass wenn man einem Buchstaben eine zweistellige Zahl zuweist, diesen ralativ leicht ermitteln kann, da ein Buchstabe bzw. eine Zahl in einer bestimmten Häufigkeit auftritt. So ist das E einer der am Häufigsten gebrauchten Buchstaben, während das Q nur sehr selten vorkommt: http://de.wikipedia.org/wiki/Buchstabenh%C3%A4ufigkeit
Wenn man aber alle Zahlen in einer Reihe schreibt und nicht weiss, wie viele Stellen die einzelnen Zahlen haben, da wird es schon wesentlich schwerer, en Code zu knacken.
So hab ich's gemacht:
Code: |
SCREEN 0
COLOR 4, 0
dim as string pw,taste
dim as integer x
x = 0
DO
CLS
LOCATE 10, 20: COLOR 4, 0: PRINT "Bitte Passwort eingeben:": COLOR 0, 0: LOCATE 10, 44: INPUT "", pw: COLOR 4, 0
IF pw = "qwert" THEN EXIT DO ELSE x = x + 1: IF x = 3 THEN beep:end
LOOP
screen 12
color 1,2
cls
print ""
print "Taste 1: Codieren Taste 2: Entziffern"
sleep
taste=inkey$
if taste="" then beep:end
IF 2 = INP(&H60) THEN
beep
cls
do
IF 1 = INP(&H60) THEN beep:end
'"1****0"
'1
IF 2 = INP(&H60) THEN print "110100";
'2
IF 3 = INP(&H60) THEN print "110010";
'3
IF 4 = INP(&H60) THEN print "110000";
'4
IF 5 = INP(&H60) THEN print "101110";
'5
IF 6 = INP(&H60) THEN print "101010";
'6
IF 7 = INP(&H60) THEN print "101000";
'7
IF 8 = INP(&H60) THEN print "100110";
'8
IF 9 = INP(&H60) THEN print "100100";
'9
IF 10 = INP(&H60) THEN print "100010";
'0
IF 11 = INP(&H60) THEN print "100000";
'"0****1"
'A
IF 30 = INP(&H60) THEN print "010101";
'B
IF 48 = INP(&H60) THEN print "010011";
'C
IF 46 = INP(&H60) THEN print "010001";
'D
IF 32 = INP(&H60) THEN print "001111";
'E
IF 18 = INP(&H60) THEN print "001101";
'F
IF 33 = INP(&H60) THEN print "001011";
'G
IF 34 = INP(&H60) THEN print "001001";
'H
IF 35 = INP(&H60) THEN print "000111";
'I
IF 23 = INP(&H60) THEN print "000101";
'J
IF 36 = INP(&H60) THEN print "000011";
'"1****1"
'K
IF 37 = INP(&H60) THEN print "111111";
'L
IF 38 = INP(&H60) THEN print "111101";
'M
IF 50 = INP(&H60) THEN print "111011";
'N
IF 49 = INP(&H60) THEN print "111001";
'O
IF 24 = INP(&H60) THEN print "110111";
'P
IF 25 = INP(&H60) THEN print "110101";
'Q
IF 16 = INP(&H60) THEN print "110011";
'R
IF 19 = INP(&H60) THEN print "110001";
'S
IF 31 = INP(&H60) THEN print "101111";
'T
IF 20 = INP(&H60) THEN print "101101";
'U
IF 22 = INP(&H60) THEN print "101011";
'V
IF 47 = INP(&H60) THEN print "101001";
'W
IF 17 = INP(&H60) THEN print "100111";
'X
IF 45 = INP(&H60) THEN print "100101";
'Y
IF 21 = INP(&H60) THEN print "100011";
'Z
IF 44 = INP(&H60) THEN print "100001";
sleep
loop
end if
IF 3 = INP(&H60) THEN
beep
cls
dim as string taste
do
input "",taste
if taste="" then beep:end
'1
if taste="110100" THEN print "1";
'2
if taste="110010" THEN print "2";
'3
if taste="110000" THEN print "3";
'4
if taste="101110" THEN print "4";
'5
if taste="101010" THEN print "5";
'6
if taste="101000" THEN print "6";
'7
if taste="100110" THEN print "7";
'8
if taste="100100" THEN print "8";
'9
if taste="100010" THEN print "9";
'0
if taste="100000" THEN print "0";
'A
if taste="010101" THEN print "A";
'B
if taste="010011" THEN print "B";
'C
if taste="010001" THEN print "C";
'D
if taste="001111" THEN print "D";
'E
if taste="001101" THEN print "E";
'F
if taste="001011" THEN print "F";
'G
if taste="001001" THEN print "G";
'H
if taste="000111" THEN print "H";
'I
if taste="000101" THEN print "I";
'J
if taste="000011" THEN print "J";
'K
if taste="111111" THEN print "K";
'L
if taste="111101" THEN print "L";
'M
if taste="111011" THEN print "M";
'N
if taste="111001" THEN print "N";
'O
if taste="110111" THEN print "O";
'P
if taste="110101" THEN print "P";
'Q
if taste="110011" THEN print "Q";
'R
if taste="110001" THEN print "R";
'S
if taste="101111" THEN print "S";
'T
if taste="101101" THEN print "T";
'U
if taste="101011" THEN print "U";
'V
if taste="101001" THEN print "V";
'W
if taste="100111" THEN print "W";
'X
if taste="100101" THEN print "X";
'Y
if taste="100011" THEN print "Y";
'Z
if taste="100001" THEN print "Z";
sleep
print ""
loop
end if
|
|
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
Verfasst am: 24.05.2008, 11:08 Titel: |
|
|
ich kenne leider die meisten befehle nicht
alle meine befehle habe ich von "SelfQB" - QBasic-Crashkurs
ich habe mal beide codes getestet
der code von random klappt nicht und ich verstehe in auch nicht
der von sebastian klappt aber ich verstehe dort ebenfalls code nicht
kann einer fürleicht mir den mal erklären |
|
Nach oben |
|
 |
Random
Anmeldungsdatum: 09.03.2006 Beiträge: 47
|
Verfasst am: 24.05.2008, 11:55 Titel: |
|
|
Sorry. Ich hab mein Programm auf die Schnelle von FB in Quickbasic umgeschrieben, und dabei einen Fehler gemacht. Anstatt taste und pw muss es taste$ und pw$ heissen. Im ersten Teil wird ein Passwort (pw$)verlangt. In diesem Fall ist es "qwert". Dann kann man mit einem Tastendruck wählen, ob man ver- oder entschlüsseln will. Beim Verschlüsseln wir mit dem Befehl INP die Tastatur abgefragt und das Zeichen als Binärcode ausgegeben. Beim Entschlüsseln gibt man dann sechs Zahlen ein, drückt ENTER und erhält dann dafür den dazugehörigen Buchstaben.
Hier nockmals der Code, diesmal separat und in reinem Quickbasic.
Verschlüsseln:
Code: |
do
'Mit "Escape" beenden
IF 1 = INP(&H60) THEN beep:end
'"1****0"
'1
IF 2 = INP(&H60) THEN print "110100";
'2
IF 3 = INP(&H60) THEN print "110010";
'3
IF 4 = INP(&H60) THEN print "110000";
'4
IF 5 = INP(&H60) THEN print "101110";
'5
IF 6 = INP(&H60) THEN print "101010";
'6
IF 7 = INP(&H60) THEN print "101000";
'7
IF 8 = INP(&H60) THEN print "100110";
'8
IF 9 = INP(&H60) THEN print "100100";
'9
IF 10 = INP(&H60) THEN print "100010";
'0
IF 11 = INP(&H60) THEN print "100000";
'"0****1"
'A
IF 30 = INP(&H60) THEN print "010101";
'B
IF 48 = INP(&H60) THEN print "010011";
'C
IF 46 = INP(&H60) THEN print "010001";
'D
IF 32 = INP(&H60) THEN print "001111";
'E
IF 18 = INP(&H60) THEN print "001101";
'F
IF 33 = INP(&H60) THEN print "001011";
'G
IF 34 = INP(&H60) THEN print "001001";
'H
IF 35 = INP(&H60) THEN print "000111";
'I
IF 23 = INP(&H60) THEN print "000101";
'J
IF 36 = INP(&H60) THEN print "000011";
'"1****1"
'K
IF 37 = INP(&H60) THEN print "111111";
'L
IF 38 = INP(&H60) THEN print "111101";
'M
IF 50 = INP(&H60) THEN print "111011";
'N
IF 49 = INP(&H60) THEN print "111001";
'O
IF 24 = INP(&H60) THEN print "110111";
'P
IF 25 = INP(&H60) THEN print "110101";
'Q
IF 16 = INP(&H60) THEN print "110011";
'R
IF 19 = INP(&H60) THEN print "110001";
'S
IF 31 = INP(&H60) THEN print "101111";
'T
IF 20 = INP(&H60) THEN print "101101";
'U
IF 22 = INP(&H60) THEN print "101011";
'V
IF 47 = INP(&H60) THEN print "101001";
'W
IF 17 = INP(&H60) THEN print "100111";
'X
IF 45 = INP(&H60) THEN print "100101";
'Y
IF 21 = INP(&H60) THEN print "100011";
'Z
IF 44 = INP(&H60) THEN print "100001";
sleep
loop
|
Entschlüsseln:
Code: |
do
input "",taste$
'Wenn man kein Taste ausser ENTER drückt, beendet das Programm automatisch
if taste$="" then beep:end
'1
if taste$="110100" THEN print "1";
'2
if taste$="110010" THEN print "2";
'3
if taste$="110000" THEN print "3";
'4
if taste$="101110" THEN print "4";
'5
if taste$="101010" THEN print "5";
'6
if taste$="101000" THEN print "6";
'7
if taste$="100110" THEN print "7";
'8
if taste$="100100" THEN print "8";
'9
if taste$="100010" THEN print "9";
'0
if taste$="100000" THEN print "0";
'A
if taste$="010101" THEN print "A";
'B
if taste$="010011" THEN print "B";
'C
if taste$="010001" THEN print "C";
'D
if taste$="001111" THEN print "D";
'E
if taste$="001101" THEN print "E";
'F
if taste$="001011" THEN print "F";
'G
if taste$="001001" THEN print "G";
'H
if taste$="000111" THEN print "H";
'I
if taste$="000101" THEN print "I";
'J
if taste$="000011" THEN print "J";
'K
if taste$="111111" THEN print "K";
'L
if taste$="111101" THEN print "L";
'M
if taste$="111011" THEN print "M";
'N
if taste$="111001" THEN print "N";
'O
if taste$="110111" THEN print "O";
'P
if taste$="110101" THEN print "P";
'Q
if taste$="110011" THEN print "Q";
'R
if taste$="110001" THEN print "R";
'S
if taste$="101111" THEN print "S";
'T
if taste$="101101" THEN print "T";
'U
if taste$="101011" THEN print "U";
'V
if taste$="101001" THEN print "V";
'W
if taste$="100111" THEN print "W";
'X
if taste$="100101" THEN print "X";
'Y
if taste$="100011" THEN print "Y";
'Z
if taste$="100001" THEN print "Z";
sleep
print ""
loop
|
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 24.05.2008, 12:37 Titel: |
|
|
@apollo26: Die Befehle kannst du in der Referenz nachschlagen - unter QBASIC gibt es doch auch eine eingebaute Hilfe zu jedem Befehl.
Welche(n) Teil(e) genau verstehst du nicht? In Sebastians Code gibt es meines Erachtens nur eine komplizierte Stelle, nämlich:
Code: | PRINT LTRIM$(STR$(ASC(MID$(Eingabe,i,1)))); " "; |
Bedeutet von innen nach außen gelesen:
nimm den i-ten Buchstaben aus dem String Eingabe (MID$)
bestimme seinen ASCII-Wert (ASC)
behandle die erhaltene Zahl als String (STR$)
und lösche daraus alle führenden Leerzeichen (LTRIM$). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
jensma

Anmeldungsdatum: 16.05.2005 Beiträge: 85 Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!
|
Verfasst am: 24.05.2008, 17:16 Titel: |
|
|
Mao hat Folgendes geschrieben: | http://de.wikipedia.org/wiki/Logarithmus
Wahrscheinlich meint jensma aber eher Algorithmus?! |
Höhö, allerdings  |
|
Nach oben |
|
 |
DosCoder
Anmeldungsdatum: 02.03.2008 Beiträge: 25
|
Verfasst am: 24.05.2008, 17:41 Titel: |
|
|
Ich hab' auch mal ein Verschlüsseler geprogt.
Das Programm beruht auf der Caesar-Verschiebung(http://de.wikipedia.org/wiki/Verschiebechiffre):
Ist der Schlüssel 1, so wird aus jedem "a" ein "b", aus jedem "z" ein "a" usw.
Mein Programm durchläuft alle Zahlen von 1 bis 25. Große Buchstaben werden in kleine umgewandelt:
Code: |
INPUT "Wie lautet Ihr Text?"; text$
DIM TextLenght AS INTEGER: TextLenght = LEN(text$)
DIM aktuell AS STRING
DIM ausgabe AS STRING
DIM newsign AS STRING
DIM verschiebung AS INTEGER
text$ = LCASE$(text$)
FOR zaehler = 1 TO 25
FOR sign = 1 TO TextLenght
aktuell = MID$(text$, sign, 1)
IF ASC(aktuell) + zaehler >= 122 THEN
FOR grenze = 1 TO zaehler
IF ASC(aktuell) + 1 > 122 THEN
aktuell = "a"
ELSE
aktuell = CHR$(ASC(aktuell) + 1)
END IF
NEXT grenze
ausgabe = ausgabe + aktuell
ELSE
newsign = CHR$(ASC(aktuell) + zaehler)
ausgabe = ausgabe + newsign
END IF
NEXT sign
PRINT ausgabe
SLEEP
ausgabe = ""
NEXT zaehler
|
|
|
Nach oben |
|
 |
apollo26
Anmeldungsdatum: 22.05.2008 Beiträge: 16
|
Verfasst am: 24.05.2008, 18:47 Titel: |
|
|
ja das habbe ich nicht verstanden nemored |
|
Nach oben |
|
 |
|