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
| 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 |
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);
}
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
}
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
}
std.db.postgres verwendet MD5Hex intern zur Berechnung der MD5-Authentifizierungsantwort:
// inner = MD5Hex(password + user)
// outer = MD5Hex(inner + salt[4 Bytes])
// response = "md5" + outer
std.crypto.sha1 oder std.crypto.aes nutzen.MD5Hex schreibt genau 33 Bytes (32 Hex-Zeichen + NUL) — der Puffer muss mindestens 33 Bytes groß sein.len=0) liefert MD5Hex „d41d8cd98f00b204e9800998ecf8427e„.std.crypto.sha1 — SHA-1 (stärker als MD5)std.crypto.aes — AES-Verschlüsselungstd.db.postgres — verwendet MD5 für die PostgreSQL-AuthentifizierungLetzte Aktualisierung: 2026-06-05