Feedback

C# - MD5 validieren

Veröffentlicht von am 02.01.2016
(0 Bewertungen)
MD5 Validatoren gibt es hier schon, ich möchte aber trotzdem zusätzlich meinen veröffentlichen, da dieser hier nicht auf Regex aufbaut und damit schneller ist.

Ich zeige hier 2 Versionen der Methode, einmal mit C# 6 und LINQ und eine klassische Variante die nur eine foreach-Schleife einsetzt.

Benötigte Namespaces - für die C# 6 Version
System.Linq
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

//C# 6 Syntax mit LINQ

/// <summary>
/// Validiert einen MD5 Hash-String.
/// </summary>
/// <param name="md5">Die zu testende Zeichenfolge.</param>
/// <returns><c>true</c>, wenn <paramref name="md5"/> ein gültige MD5 Hash ist; andernfalls <c>false</c>.</returns>
static bool IsValidMD5(string md5) => md5 != null && md5.Length == 32 && md5.All(x => (x >= '0' && x <= '9') || (x >= 'a' && x <= 'f') || (x >= 'A' && x <= 'F'));

//alte C# Syntax

/// <summary>
/// Validiert einen MD5 Hash-String.
/// </summary>
/// <param name="md5">Die zu testende Zeichenfolge.</param>
/// <returns><c>true</c>, wenn <paramref name="md5"/> ein gültige MD5 Hash ist; andernfalls <c>false</c>.</returns>
static bool IsValidMD5(string md5)
{
    if (md5 == null || md5.Length != 32) return false;
    foreach (var x in md5)
    {
        if ((x < '0' || x > '9') && (x < 'a' || x > 'f') && (x < 'A' || x > 'F'))
        {
            return false;
        }
    }
    return true;
}
Abgelegt unter MD5, Validate, LINQ, Validator.

2 Kommentare zum Snippet

lucifeey schrieb am 04.12.2016:
Das geht doch viel einfacher mit Regex.
Koopakiller schrieb am 04.12.2016:
Regex ist einfach nur langsam und kann man in vielen Fällen problemlos mit so kurzen Codes ersetzen.
Ich weiß nicht wie es anderen geht, aber zumindest ich brauchte eben keine 5 Sekunden dafür, um zu erfassen wie der Code funktioniert. Das hätte das Regex Pattern ^[0-9A-Fa-f]{32}$ wohl auch abverlangt.

Regex hat seine Daseinsberechtigung, in meinen Augen aber nicht für solche einfachen Aufgaben.
 

Logge dich ein, um hier zu kommentieren!