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 / - 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 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