Zum Inhalt springen
uencoder

Securely wipe sensitive Daten von memory

Cryptographic Schlüssel und plaintext muss sein zeroed von memory nach verwenden. Lernen warum memset ist nicht enough und wie in prevent compiler optimization.

  1. 1

    After using a cryptographic key or plaintext, it must be overwritten with zeros in memory. Simply letting the variable go out of scope is insufficient — the data remains in memory until the page is reused. The challenge: compilers optimize away memset(key, 0, len) if the key is never read again.

  2. 2
    Hash-Rechner →

    Hash sensitive data before processing if you need to retain a non-reversible representation. The hash output replaces the plaintext in memory — the original is wiped after hashing.

  3. 3
    Base64-Kodierer →

    Codieren sensitive data for transmission, then wipe the original plaintext from memory. The encoded form is not the secret — it is the transport representation. Wipe both after use.

  4. 4

    In C/C++, use explicit_bzero() or a volatile pointer to prevent the compiler from optimizing away the zeroing. In JavaScript, the language does not guarantee memory zeroing — use Uint8Array and overwrite all bytes, but be aware the GC may not immediately reclaim the memory. For truly sensitive operations, use a Web Worker and terminate it after use.

Häufige Fragen

Why does the compiler optimize away memset?
If the compiler sees that the buffer is never read after memset(buf, 0, len), it considers the zeroing a "dead store" and removes it for performance. Functions like explicit_bzero use volatile semantics to prevent this optimization.
Is this relevant in JavaScript?
JavaScript strings are immutable and cannot be zeroed — avoid storing secrets in strings. Use Uint8Array (mutable) and overwrite all bytes. However, the GC may copy data during compaction, leaving copies in memory. For maximum security, use a Worker and terminate it, or use WASM with manual memory management.

Workflows, die diese Aufgabe lösen

Ascii85 in Base64 umwandeln
Ascii85 dekodieren und als Base64 neu kodieren für breitere Kompatibilität.
PIPELINE
Base2048 in Base64 umwandeln
Base2048 (Emoji) dekodieren und als Base64 neu kodieren für Standardtransport.
PIPELINE
Base32 in Base64 umwandeln
Eine Base32-kodierte Zeichenkette in Bytes dekodieren und als Base64 neu kodieren für kompaktere Darstellung.
PIPELINE
Base58 in Base64 umwandeln
Base58 dekodieren und als Base64 neu kodieren für Standardkompatibilität.
PIPELINE
Base64 kodieren und dekodieren für Round-Trip-Verifikation
Text als Base64 kodieren und dekodieren, um zu verifizieren, dass der Round-Trip die Originaldaten erhält.
PIPELINE
Blowfish verschlüsseln dann Base64
Mit Blowfish verschlüsseln und als Base64 für text-sicheren Transport kodieren.
PIPELINE
DES verschlüsseln dann Base64
Mit DES verschlüsseln und als Base64 kodieren für Legacy-Kompatibilität.
PIPELINE
JSON-Nutzlast für URL-Transport kodieren
Ein JSON-Dokument für URL-Parameter vorbereiten: pretty-print, Base64-kodieren, dann percent-kodieren — die exakte Umkehrung der verschachtelten Parameter-Dekodierungskette.
PIPELINE
AES verschlüsseln dann Base64 kodieren
Klartext mit AES verschlüsseln und den Geheimtext als Base64 kodieren für text-sicheren Transport.
PIPELINE
Inhalt hashen und als Base64 kodieren
Einen Hash der Eingabe berechnen und den Hash-Digest als Base64 kodieren für kompakten Transport.
PIPELINE
Text hashen und Integrität verifizieren
Einen Hash des Eingabetextes berechnen und mit einem erwarteten Hash vergleichen zur Integritätsverifikation.
PIPELINE
Text hashen und mit CRC32-Prüfsumme verifizieren
Sowohl einen kryptografischen SHA-256-Hash als auch eine CRC32-Prüfsumme berechnen zur Datenintegritätsverifikation.
PIPELINE
Hex in Base64 umwandeln
Eine Hex-Zeichenkette in Bytes dekodieren und als Base64 neu kodieren für kompakten Transport.
PIPELINE
HMAC signieren dann Base64 kodieren
HMAC-Signatur generieren dann Base64 kodieren für API-Auth-Header.
PIPELINE
MD5 hashen dann Base58 kodieren
MD5-Hash berechnen dann als Base58 kodieren für kompakte Darstellung.
PIPELINE
Morse kodieren und Base64-Transport
Text als Morse-Code kodieren dann Base64-kodieren für digitalen Transport.
PIPELINE
Multi-Hash-Geschwindigkeitsvergleich
Die Eingabe hashen und mehrere Hash-Algorithmen benchmarken zum Vergleich von Geschwindigkeit und Ausgabe.
PIPELINE
Passwort generieren und hashen
Ein Zufallspasswort generieren dann hashen für sichere Speicherung.
PIPELINE
RC4 verschlüsseln dann Base64
Mit RC4 verschlüsseln und als Base64 kodieren für Transport.
PIPELINE
RIPEMD-160 hashen dann Base64
RIPEMD-160-Hash berechnen dann Base64 kodieren für Transport.
PIPELINE
SHA3-256-Hash mit CRC32-Prüfsumme
SHA3-256-Hash berechnen dann CRC32-Prüfsumme für duale Integritätsverifikation.
PIPELINE
SHA-512 hashen dann Hex
SHA-512-Hash berechnen dann als Hex kodieren für Lesbarkeit.
PIPELINE
Text umkehren und hashen
Text umkehren dann SHA-256-Hash des umgekehrten Ergebnisses berechnen.
PIPELINE
Text verschlüsseln und hashen
Text verschlüsseln dann das verschlüsselte Ergebnis hashen.
PIPELINE
Text mischen und Base64 kodieren
Textzeichen mischen dann Ergebnis als Base64 kodieren.
PIPELINE
Unicode escapen und Base64 kodieren
Text Unicode-escapen dann als Base64 kodieren fuer ASCII-sicheren Transport.
PIPELINE
URL kodieren dann Base64 doppelt
URL kodieren dann Base64-kodieren fuer Doppelkodierung in API-Nutzlasten.
PIPELINE
UUencode dann Base64
Text UUencode dann Ergebnis als Base64 kodieren fuer Doppelkodierung.
PIPELINE
UUID generieren und Base64 kodieren
Eine UUID generieren und als Base64 kodieren fuer kompakte Speicherung.
PIPELINE

Verwandte Tools