Hi
ich poste hier ein simple Lösung, um Wörter mit Atbash zu verschlüsseln.
Das Programm ist eine Konsolen-Anwendung und funktioniert ganz simple nach dem EVA-Prinzip
(Eingabe-Verarbeitung-Ausgabe)
Gleichzeitig ist in dem Programm noch eine Lösung zu finden, die zeigt, wie man einen Text in der Konsole zentriert.
Info zu Atbash:
Atbash ist ursprünglich eine hebräische Geheimschrift, näheres dazu hier (Wikipedia.de: de.wikipedia.org/wiki/Atbash).
Man hat damals einfach das Alphabet umgedreht und es auf das normale Alphabet übertragen.
D.h. Aus a wurde z, aus b wurde y, usw.
Das so als kleine Hintergrundinfo.
Hier ist der Programmcode:
Das ist nur eine von vielen Lösungen. - die aber trotzdem ganz hilfreich sein kann, da man z.B. in der Schule oft dieses Verfahren im Informatikunterricht braucht.
MFG
Fab
ich poste hier ein simple Lösung, um Wörter mit Atbash zu verschlüsseln.
Das Programm ist eine Konsolen-Anwendung und funktioniert ganz simple nach dem EVA-Prinzip
(Eingabe-Verarbeitung-Ausgabe)
Gleichzeitig ist in dem Programm noch eine Lösung zu finden, die zeigt, wie man einen Text in der Konsole zentriert.
Info zu Atbash:
Atbash ist ursprünglich eine hebräische Geheimschrift, näheres dazu hier (Wikipedia.de: de.wikipedia.org/wiki/Atbash).
Man hat damals einfach das Alphabet umgedreht und es auf das normale Alphabet übertragen.
D.h. Aus a wurde z, aus b wurde y, usw.
Das so als kleine Hintergrundinfo.
Hier ist der Programmcode:
VB.NET-Quellcode
- Module Module1
- Private Text_Old, Text_New As String 'Speichern den uncodierten und den codierten Text
- Sub Main()
- Console.ForegroundColor = ConsoleColor.Yellow
- CenterText("Atbash")
- For i As Integer = 1 To 80
- Console.Write("*")
- Next
- Console.WriteLine()
- CenterText("Geben sie den zu codierenden Text ein!")
- CenterText("Satz- und Sonderzeichen sind nicht erlaubt!")
- Console.WriteLine()
- Console.Write("Text: ")
- Text_Old = Console.ReadLine 'den uncodierten Text einlesen
- Console.WriteLine("Der neue Text lautet: " & Atbash(Text_Old)) 'den unkodierten Text an die "Codierungs-Funktion" übergeben
- Console.ReadKey()
- End Sub
- Sub CenterText(ByVal Text As String)
- Const Width As Integer = 40 'Die halbe Breite der Konsole
- Dim TextLength As Integer 'Speichert die Länge des Textes
- Dim Value As Integer 'Speichert die Anzahl der Leerstellen
- TextLength = Text.Length
- Value = Width - Math.Round(TextLength / 2)
- For i As Integer = 1 To Value
- Console.Write(" ")
- Next
- Console.WriteLine(Text)
- End Sub
- Function Atbash(ByVal Text As String)
- Dim MyArray() As Char
- Dim iAsc As Integer
- MyArray = Text.ToCharArray 'Der Text wird in einen Array convertiert, dadurch ist er leichter zu verarbeiten
- For i As Integer = 0 To MyArray.Length - 1
- iAsc = Asc(MyArray(i)) 'Der entsprechende Buchstabe wird in ASCII-Zeichencode umgewandelt
- iAsc += 25 'Der Buchstabe wird um 25 Stellen im Alphabet verschoben
- If iAsc > 90 Or iAsc > 122 Then
- 'Falls der Buchstabe kein a/A ist und mit einer Verschiebung um 25 Stellen nicht das gewünschte Ergebnis
- 'erzielt wird, wird hier jeweils für den Groß - oder Kleinbuchstaben der richtige "Code-Buchstabe" ermittelt
- If iAsc > 90 And iAsc < 122 Then
- iAsc = (25 - (iAsc - 90)) + 65
- Else
- iAsc = (25 - (iAsc - 122)) + 97
- End If
- End If
- Text_New += Chr(iAsc).ToString 'Der Array wird wieder in einen String "umgewandelt" - durch "Addition"
- Next
- Return Text_New
- End Function
- End Module
Das ist nur eine von vielen Lösungen. - die aber trotzdem ganz hilfreich sein kann, da man z.B. in der Schule oft dieses Verfahren im Informatikunterricht braucht.
MFG
Fab
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fab“ ()