PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] ROTServiceProvider (Caesarverschlüsselungen)



par0noid
07.03.2016, 15:07
Mit folgender Klasse lassen sich alle gängigen "ROT-Verschlüsselungen" generieren


namespace ROT
{
class ROTServiceProvider
{
public string rot5(string s)
{
string k = "";


foreach (char c in s)
{
if ((int)c >= 48 && (int)c <= 57)
{
k += (char)((((c - 48) + 5) % 10) + 48);
continue;
}


k += c;
}


return k;
}


public string rot13(string s)
{
string k = "";


foreach (char c in s)
{
if ((int)c >= 65 && (int)c <= 90)
{
k += (char)((((c - 65) + 13) % 26) + 65);
continue;
}


if ((int)c >= 97 && (int)c <= 122)
{
k += (char)((((c - 97) + 13) % 26) + 97);
continue;
}


k += c;
}


return k;
}


public string rot18(string s)
{
return rot5(rot13(s));
}


public string rot47(string s)
{
string k = "";


foreach (char c in s)
{
if ((int)c >= 33 && (int)c <= 126)
{
k += (char)((((c - 33) + 47) % 94) + 33);
continue;
}


k += c;
}


return k;
}
}
}

Leange
20.03.2016, 19:36
Hoi

Meine Lösung aus den guten alten VB.net Zeiten xD


Public Class caesar

Public Shared Function rot(ByVal input As String, ByVal key As Integer) As String
rot = ""
For i = 0 To input.Length - 1
Dim tmp As Int32 = Asc(input.Substring(i, 1))
If tmp >= 97 And tmp <= 122 Then
tmp += key
If tmp > 122 Then
tmp -= 26
End If
rot += Chr(tmp)
ElseIf tmp >= 65 And tmp <= 90
tmp += key
If tmp > 90 Then
tmp -= 26
End If
rot += Chr(tmp)
Else
rot += Chr(tmp)
End If
Next
End Function

Public Shared Function brute(ByVal input As String) As List(Of String)
brute = New List(Of String)
For key = 1 To 26
brute.Add(rot(input, key))
Next
End Function

End Class