Eigener ASCII Code

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Eigener ASCII Code

    Guten Morgen,

    Ich bin noch ziemlich neu in der Programmier Szene und brauche eure Hilfe mit einem kleinen Projekt das ich starten möchte.
    Ich möchte gerne ein Wort in ein Textfeld eingeben und dieses soll auf Druck eines Knopfes in ein zweites Textfeld ausgegeben werden, jedoch als Zahlenfolge
    Das habe ich soweit:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim a As Integer = 19
    3. Dim b As Integer = 18
    4. Dim c As Integer = 17
    5. Dim d As Integer = 16
    6. Dim e As Integer = 21
    7. Dim f As Integer = 22
    8. Dim g As Integer = 23
    9. Dim h As Integer = 24
    10. Dim i As Integer = 39
    11. Dim j As Integer = 38
    12. Dim k As Integer = 37
    13. Dim l As Integer = 36
    14. Dim m As Integer = 41
    15. Dim n As Integer = 42
    16. Dim o As Integer = 43
    17. Dim p As Integer = 44
    18. Dim q As Integer = 59
    19. Dim r As Integer = 58
    20. Dim s As Integer = 57
    21. Dim t As Integer = 56
    22. Dim u As Integer = 61
    23. Dim v As Integer = 62
    24. Dim w As Integer = 63
    25. Dim x As Integer = 64
    26. Dim y As Integer = 99
    27. Dim z As Integer = 98
    28. Dim Final As String = ""
    29. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    30. Final = ""
    31. If abc.Text > 0 Then
    32. For
    33. Next
    34. ASC1.Text = Final
    35. Else
    36. MsgBox("Please enter your message!")
    37. End If
    38. End Sub
    39. End Class


    abc ist die erste box, ASC1 die zweite, Button1 der einzige Button.
    Leider weiß ich nicht wie ich das konvertieren hinbekomme! Vielleicht hat ja einer von euch einen Tip für mich. Als nächster Schritt müsste man sich überlegen wie man den ganzen Prozess rückwärts macht, damit man das ganze auf wieder entschlüsseln kann.
    Herzlichen Dank
    Mit freundlichen Grüßen
    Bobo
    Erst mal: ASCII ist ein Standard. Du kannst also keinen neuen ASCII Code für Buchstaben erstellen.

    Was du willst ist eine Zuordnung von Char zu Integer.
    Mach dir ein Dictionary(of Char, Integer) mit allen werten, iteriere über deinen Text und hol dir die Daten aus dem Dictionary. Das Ganze mit StringBuilder zu einem String zusammensetzen und fertig.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    1. »Eigener ASCII Code« ist ein Oxymoron, da das ASC in ASCII für »American Standard Code« steht.
    2. Du willst also einen Text quasi übersetzen. Was soll denn für »test« rauskommen? »56215756«? Was ist mit "Test"? Oder "712Tß#"?
    3. Was soll das überhaupt werden?

    Bobo3003 schrieb:

    das ganze auf wieder entschlüsseln
    Verschlüsselung hoffentlich nicht. Man braucht nur wenige Versuche, um den Code zu knacken und beim besten Willen: Es gibt Dinge, die man programmieren sollte; Dinge, die man nicht selber programmieren sollte; und Dinge, von denen man die Finger lassen muss, solange man kein Super-Expoerte ist. Und Kryptologie gehört zu letzterem.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für die schnellen Antworten.
    Ja das ganze sollte nur ein Experiment sein, keine Sorge, wollte das ganze nicht Sicherheitsrelevant machen.
    Werde mal gucken wenn ich später nach Hause komme und mal gucken wie weit ich das ganze funktioniert.
    Und ich dachte mir erstmal ich fange nur mit kleinen Buchstaben an um es möglichst simpel zu halten.
    Vielen Dank soweit
    @Bobo3003 Soll das so was wie ne ne Caesar-Verschlüsselung werden?
    Nimm ein Dictionary(Of Char, Integer).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo @Bobo3003

    Die Variante die @EaranMaleasi vorgeschlagen hat würde wahrscheinlich am Besten zu dem passen was du machen willst. Solange es nur beim Konvertieren bleibt.

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On
    3. Imports System.Text
    4. Public Module Module1
    5. Public Sub Main()
    6. 'Wort >> Zahlen
    7. Dim txtBox1 As String = "Irgendwas"
    8. Dim txtBox2 As String = MakeStringNum(Encoding.Default.GetBytes(txtBox1), 1)
    9. 'Zahlen >> Wort
    10. txtBox1 = GetString(txtBox2)
    11. Stop
    12. End Sub
    13. Private Function MakeStringNum(ByVal i() As Byte, ByVal _selec As Byte) As String
    14. Select Case _selec
    15. Case 0 : Return String.Join(" ", i.Select(Function(x) x.ToString.Trim).ToArray)
    16. Case 1 : Return String.Join("-", i.Select(Function(x) x.ToString.Trim).ToArray)
    17. Case Else : Return String.Join("", i.Select(Function(x) x.ToString.Trim).ToArray)
    18. End Select
    19. End Function
    20. Private Function GetString(ByVal s As String) As String
    21. Dim ss() = s.Split(New Char() {"-"c}, StringSplitOptions.RemoveEmptyEntries)
    22. Dim b() As Byte = New Byte(ss.Length - 1) {}
    23. For i As Int32 = 0 To ss.Length - 1 : b(i) = CByte(ss(i)) : Next
    24. Return Encoding.Default.GetString(b)
    25. End Function
    26. End Module


    Freundliche Grüsse

    exc-jdbi

    VaporiZed schrieb:

    solange man kein Super-Expoerte ist. Und Kryptologie gehört zu letzterem.

    Man kann kein Super-Experte in etwas werden, wenn man als Laie gesagt bekommt lass' die Finger davon.
    Weise jemanden darauf hin, dass man sich vorher mit Kryptologie ausgiebig beschäftigen soll bevor man anfängt produktiv irgendwelche benutzerdefinierte Verschlüsselungen zu erfinden.
    Eine Verschlüsselung zu entwerfen ist immer dann ein Problem, solang man kein Experte in Kryptographie/Kryptologie ist. Spätestens dann wenn man ein Experte ist, weiß man jedoch warum das Entwerfen einer Verschlüsselung in 99% der Fälle eine ziemlich blöde Idee ist.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    VaporiZed schrieb:

    »Eigener ASCII Code« ist ein Oxymoron
    OT: Das ist doch kein Oxymoron. ;) Ich weiß zwar nicht, wie man sowas nennt, aber ein Oxymoron ist was anderes.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    seh schrieb:

    Man kann kein Super-Experte in etwas werden, wenn man als Laie gesagt bekommt lass' die Finger davon.
    Lass die Finger davon heißt aber auch: Fang mit was einfacherem an, zb. von hier was: [Sammelthread] Programmieren, aber was? (Programmideen)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Trade schrieb:

    Ich weiß zwar nicht, wie man sowas nennt, aber ein Oxymoron ist was anderes.

    @VaporiZed Ein Oxymoron ist ein gewollter Widerspruch meist in der Lyrik oder Prosa verwendet. Das hier vorliegende Beispiel ist ungewollter Natur und daher ein Contradictio in adiecto oder auf gut Deutsch ein klassischer Widerspruch in sich.

    Edit:
    @Dksksm Wat? Genau das habe ich doch geschrieben. Zitat von einem Zettel zu rhetorischen Mitteln aus meiner Schulzeit:
    "Eine Contradictio in adiecto ist ein logischer Fehler in einer Formulierung. Wird die Widersprüchlichkeit absichtsvoll formuliert, spricht man von einem Oxymoron."

    [/OT]
    Grüße
    Vainamo

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vainamo“ ()

    Vainamo schrieb:

    Trade schrieb:

    Ich weiß zwar nicht, wie man sowas nennt, aber ein Oxymoron ist was anderes.

    @VaporiZed Ein Oxymoron ist ein gewollter Widerspruch meist in der Lyrik oder Prosa verwendet. Das hier vorliegende Beispiel ist ungewollter Natur und daher ein Contradictio in adiecto oder auf gut Deutsch ein klassischer Widerspruch in sich.


    [OT]Du hast dich aber sebst widerlegt, denn ein Oxymoron ist es nur, wenn es als bewusstes Stilmittel eingesetzt wird. Das gilt auch für die Sonderform Contradictio in adiecto, wie das offene Geheimnis. [/OT]
    DIe richtige Herangehensweiße wäre von der Encoding-Klasse zu erben:
    msdn.microsoft.com/de-de/libra…t.encoding(v=vs.110).aspx

    Und dort zu implementieren. Wie es dann implementiert werden kann steht ja bereits oben, aber da du denke ich erst mal sowieso im Byte bereich bleibst wäre ein Array rein Geschwindigkeitsmäßig sinnvoller, für alles darüber kann man ja dann nen Dictionary nehmen, wenn man viele Zeichen auslassen möchte...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:

    DIe richtige Herangehensweise wäre
    die Annahmologismen ruhen zu lassen und erst mal auf eine Antwort von @Bobo3003 zu warten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!