Inhaltsverzeichnis

std.crypto.md5

MD5 Message-Digest Algorithm (RFC 1321): Pure-Lyx-Implementierung ohne externe Abhängigkeiten. Liefert einen 16-Byte-Rohdigest (MD5) oder einen 32-Zeichen-Hex-String in Kleinbuchstaben (MD5Hex, MD5HexStr). Gedacht für Checksummen und Protokoll-Kompatibilität — nicht für kryptografische Sicherheitszwecke.

Standard Library · std.crypto.sha1 · std.crypto.aes


Funktionen

Signatur Beschreibung
MD5(data: int64, len: int64, out: int64) Berechnet den MD5-Digest von len Bytes ab data und schreibt 16 Roh-Bytes in out (alloc(16))
MD5Hex(data: int64, len: int64, out: int64) Wie MD5, schreibt aber 32 Kleinbuchstaben-Hex-Zeichen + NUL in out (alloc(33))
MD5HexStr(data: pchar, len: int64, out: int64) Convenience-Wrapper für MD5Hex mit pchar-Eingabe

Verwendung

Datei-Checksum

import std.crypto.md5;
import std.alloc;
import std.io;

fn PrintMD5(data: int64, len: int64): void {
    var hex: int64 := alloc(33);
    MD5Hex(data, len, hex);
    PrintLn(hex as pchar);
    free(hex, 33);
}

String hashen

import std.crypto.md5;
import std.alloc;
import std.string;

fn HashString(s: pchar): int64 {
    var len := StrLen(s);
    var out: int64 := alloc(33);
    MD5HexStr(s, len, out);
    return out;   // Aufrufer muss free(out, 33) aufrufen
}

Roher 16-Byte-Digest

import std.crypto.md5;
import std.alloc;

fn ComputeRawDigest(data: int64, len: int64): int64 {
    var digest: int64 := alloc(16);
    MD5(data, len, digest);
    return digest;   // Aufrufer muss free(digest, 16) aufrufen
}

PostgreSQL MD5-Auth (intern)

std.db.postgres verwendet MD5Hex intern zur Berechnung der MD5-Authentifizierungsantwort:

// inner = MD5Hex(password + user)
// outer = MD5Hex(inner + salt[4 Bytes])
// response = "md5" + outer


Hinweise


Verwandte Units

Letzte Aktualisierung: 2026-06-05