Dekodieren von Base64 in C# (Entweder eine Zeichenkette, die Verschlüsselt oder nicht)
Möchte ich entschlüsseln, den string in base64-format. Ich habe einige Daten verschlüsseln-format und einige in normalen text. Zuerst muss ich überprüfen Sie die Zeichenfolge in verschlüsselter oder nicht. Wenn Ihr in einem verschlüsselten format entschlüsseln Sie die Zeichenfolge. Wenn es sich um normalen text, dann den text angezeigt, wie es ist.
Hier ist mein code:-
public static string DecryptConnectionString(string connectionString)
{
string result = "";
bool app = false;
app = IsBase64String(connectionString);
if (app == true)
{
Byte[] b = Convert.FromBase64String(connectionString);
string decryptedConnectionString = System.Text.ASCIIEncoding.ASCII.GetString(b);
result = decryptedConnectionString;
}
else if (app == false)
{
result = connectionString;
}
return result;
}
public static bool IsBase64String(string s)
{
s = s.Trim();
return (s.Length % 4 == 0) && Regex.IsMatch(s, @"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", RegexOptions.None);
}
Dieser code nicht wunderbar funktioniert, manchmal funktioniert es aber manchmal nicht. Wenn ich Schreibe "test", dann zeigt er, wie diese "??". Kann einer helfen????
- "Dieser code funktioniert nicht" ist mein Lieblings-Fehler-Beschreibung.
- Seine Typo-Fehler, ich knw "Dieser code wird nicht funktionieren" Kann u mir helfen, zur Lösung der oben genannten decode-string-problem???
- Das problem ist nicht, dass Sie vermisst das Wort "ist". Das problem ist, dass zu sagen "mein code funktioniert nicht" - gibt keinerlei Informationen, was geschieht, und wie Sie versucht haben, das problem zu lösen.
- Ich habe die verschlüsselten Daten in der DB, aber einige Daten sind in normalen text. Nun, wenn ich in die dummy-text wie "test" also, mithilfe der oben beschriebenen Methode zeigt seine "??". Das Problem ist, wenn der string ist im format verschlüsseln entschlüsseln Sie die Zeichenfolge, und wenn nicht, dann zeigen die Ergebnisse, wie es ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist die Codierung.
Im obigen Beispiel verwenden Sie ASCII. Normalerweise, wenn mit .net-Variablen u UTF-8-string.
Für diese empfehle ich Sie zu Lesen Joel über die Grundlagen von unicode
Müssen Sie immer verwenden Sie die Codierung, mit der die Zeichenfolge erstellt wurde.
Beim konvertieren des byte-Daten in eine Zeichenfolge, und Sie haben nicht die richtige Codierung, die chars, die können nicht zugeordnet werden, wird es zu unerwarteten Chars. (Wie ?)
Wie etwa versuchen, Base64 decode und fangen Sie eine Ausnahme, wenn es nicht decodiert werden kann?
System.Text.ASCIIEncoding.ASCII.GetString()
oder andere). Hoffe, das hilft.