Visual Basic EnCrypter und DeCrypter

  • Ich brauchte für ein spiel das ich jetzt entwickle eine verschlüsselungs methode. Da ich mich mit MD5 Codes etc. nicht besonders gut auskannte hab ich einfach versucht verschiedene ausdrucksweisen so zu kombiniren, dass man die entschlüsselung nicht einfach unternehmen kann. So kann man beispielsweise die datein so umcomfiguriren, sodass jede neue zeile ein neues schlüsselwort verlangt wird.
    Aber nicht soviel Gelaber sondern einfach der code:


    Oben muss erstmal die Varialble:


    Dim Key as String = "standartwert"


    und dann kommen viele Funktionen:
    Die Hauptfunktion die alle anderen Hinzufügt und noch ein paar andere Features einbaut:



    Private Function DENCRYPT(ByRef keyg As String, ByRef str As String, ByRef mode As String)
    Dim Result As String = "none"
    If mode.ToLower = "auto" Then
    If isBinary(str) = True Then
    Result = TStr(str, keyg)
    Else
    Result = TByte(str, keyg)
    End If
    ElseIf mode.ToLower = "encrypt" Then
    Result = TByte(str, keyg)
    ElseIf mode.ToLower = "decrypt" Then
    Result = TStr(str, keyg)
    Else
    Result = "Gone Bad"
    End If
    Return Result
    End Function



    So da wir das jetz haben den anfang und jetz um den code in die verschlüsselung zu übersetzten:




    Private Function TByte(ByRef sTr As String, ByVal keyg As String)
    Dim keyBin As String = KeytBinary(keyg)
    Dim Val As String = Nothing
    Dim Result As New System.Text.StringBuilder
    For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(sTr)
    Result.Append(Convert.ToString(Character, 2).PadLeft(8, "0"))
    Result.Append(" " & keyBin & " ")
    Next
    Val = Result.ToString.Substring(0, Result.ToString.Length - 1)
    Return Val
    End Function



    das ist die übersetzung des textes jetzt muss der schlüssel(key) übersetz und eingefügt werden.


    Private Function KeytBinary(ByVal keyg As String)
    Dim Val As String = Nothing
    Dim Result As New System.Text.StringBuilder
    For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(keyg)
    Result.Append(Convert.ToString(Character, 2).PadLeft(8, "0"))
    Result.Append(" ")
    Next
    Val = Result.ToString.Substring(0, Result.ToString.Length - 1)
    Return Val
    End Function



    Fehlen nur noch 2 sachen:
    1. die rückübersetzung:

    Private Function TStr(ByRef sTr As String, ByVal keyg As String)
    Dim Val As String = Nothing
    Dim Characters As String = System.Text.RegularExpressions.Regex.Replace(sTr, "[^01]", "")
    Dim ByteArray((Characters.Length / 8) - 1) As Byte
    For Index As Integer = 0 To ByteArray.Length - 1
    ByteArray(Index) = Convert.ToByte(Characters.Substring(Index * 8, 8), 2)
    Next
    Val = System.Text.ASCIIEncoding.ASCII.GetString(ByteArray)
    Val = Replace(Val, keyg, "")
    Return Val
    End Function


    und last but important :D eine wichtige weitere funktion um die möglichkeiten zu erweitern (ist notwendig!)

    Private Function isBinary(ByRef str As String)
    Dim binary As Boolean
    Dim finstr As String
    finstr = Replace(str, " ", "")
    If IsNumeric(finstr) Then
    binary = True
    Else
    binary = False
    End If
    Return binary
    End Function



    Das sollte alles gewesen sein jetz müsst ihr nurnoch DENCRYPT(key,textbox1.text,"Auto") und das wars !
    Ich hoffe die weise zu verschlüsseln ist noch nicht bekannt ansonsten hab ich halt was dazugelernt ;)
    Man Hört voneinander Marco

  • So ich melde mich wieder mit ein paar Neuigkeiten :

    • Ich habe der Methode Strings zu verschlüsseln einen namen gegeben, nämlich "THS" oder ausgeschrieben "That Hat Style".
    • Die Methode befindet sich derzeit in einer entwicklungsphase also könnt ihr nun euch wünschen welche funktionen gewünscht sind, wie beispielsweise die dynamik zu verändern.


    Kleine Hausaufgabe(von der derzeitigen version die nicht erhältlich ist): versucht das zu entschlüsseln:


    1101111111001100 1100111111011111 1100110011001110 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110011001111 1101111111001101 1100111111011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110111001111 1101111111001100 1100111111011111 1100110011001110 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111011011111 1100110011001110 1101111111001100 1100111011011111 1100110011001110 1101111111001101 1100111111011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110011001110 1101111111001100 1100111011011111 1100110111001111 1101111111001100 1100111111011111 1100110011001110 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110011001110 1101111111001101 1100111111011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110111001111 1101111111001100 1100111111011111 1100110011001110 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111011011111 1100110011001110 1101111111001100 1100111011011111 1100110011001110 1101111111001101 1100111111011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111011011111 1100110011001111 1101111111001100 1100111111011111 1100110011001110 1101111111001100 11001110



    Viel spaß!