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]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

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