Aller au contenu
uencoder

Securely wipe sensitive données de memory

Cryptographic clés et plaintext doit être zeroed de memory après utiliser. Apprendre pourquoi memset est non enough et comment en 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
    Calculatrice de hash →

    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
    Encodeur Base64 →

    Coder 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.

Questions fréquentes

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 résolvant cette tâche

Convertir Ascii85 en Base64
Décoder Ascii85 et recoder en Base64 pour une meilleure compatibilité.
PIPELINE
Convertir Base2048 en Base64
Décoder Base2048 (emoji) et recoder en Base64 pour un transport standard.
PIPELINE
Convertir Base32 en Base64
Décoder une chaîne codée en Base32 en bytes et recoder en Base64 pour une représentation plus compacte.
PIPELINE
Convertir Base58 en Base64
Décoder Base58 et recoder en Base64 pour une compatibilité standard.
PIPELINE
Coder en Base64 puis décoder pour vérifier l'aller-retour
Coder le texte en Base64 et le décoder pour vérifier que l'aller-retour préserve les données originales.
PIPELINE
Blowfish chiffrer puis Base64
Chiffrer avec Blowfish puis coder en Base64 pour un transport textuel sûr.
PIPELINE
DES chiffrer puis Base64
Chiffrer avec DES puis coder en Base64 pour compatibilité legacy.
PIPELINE
Coder une charge utile JSON pour transport URL
Préparer un Document JSON pour un Paramètre URL: embellir, Coder en Base64, puis encodage pourcent — le inverse exacte de le chaîne de décodage de paramètres imbriqués.
PIPELINE
AES chiffrer puis coder en Base64
Chiffrer le texte clair avec AES et coder le texte chiffré en Base64 pour un transport textuel sûr.
PIPELINE
Hacher le contenu et coder en Base64
Calculer un hachage de l'entrée et coder le condensat en Base64 pour un transport compact.
PIPELINE
Hacher le texte et vérifier l'intégrité
Calculer un hachage du texte d'entrée et le comparer à un hachage attendu pour vérifier l'intégrité.
PIPELINE
Hacher le texte et vérifier avec somme CRC32
Calculer à la fois un hachage cryptographique SHA-256 et une somme de contrôle CRC32 pour la vérification d'intégrité des données.
PIPELINE
Convertir Hex en Base64
Décoder une chaîne Hex en bytes et la recoder en Base64 pour un transport compact.
PIPELINE
Signer HMAC puis coder en Base64
Générer une signature HMAC puis coder en Base64 pour les en-têtes d'authentification API.
PIPELINE
Hacher MD5 puis coder en Base58
Calculer le hash MD5 puis coder en Base58 pour une représentation compacte.
PIPELINE
Coder Morse et transport Base64
Coder le texte en code Morse puis coder en Base64 pour le transport numérique.
PIPELINE
Comparaison de vitesse multi-hash
Hacher l'entrée et benchmarker plusieurs algorithmes de hachage pour comparer leur vitesse et sortie.
PIPELINE
Générer un mot de passe et hacher
Générer un mot de passe aléatoire puis le hacher pour un stockage sécurisé.
PIPELINE
RC4 chiffrer puis Base64
Chiffrer avec RC4 puis coder en Base64 pour transport.
PIPELINE
Hacher RIPEMD-160 puis Base64
Calculer le hash RIPEMD-160 puis coder en Base64 pour transport.
PIPELINE
Hash SHA3-256 avec somme CRC32
Calculer le hash SHA3-256 puis la somme CRC32 pour une double vérification d'intégrité.
PIPELINE
Hacher SHA-512 puis Hex
Calculer le hash SHA-512 puis coder en Hex pour lisibilité.
PIPELINE
Inverser le texte et hacher
Inverser le texte puis calculer le hachage SHA-256 du résultat inversé.
PIPELINE
Brouiller le texte et hacher
Brouiller le texte puis hacher le résultat brouillé.
PIPELINE
Mélanger le texte et coder Base64
Mélanger les caractères du texte puis coder en Base64 le résultat.
PIPELINE
Echapper Unicode et coder Base64
Echapper le texte Unicode puis coder en Base64 pour un transport ASCII-safe.
PIPELINE
Coder URL puis double Base64
Coder URL puis coder en Base64 pour un double encodage dans les charges utiles API.
PIPELINE
UUencode puis Base64
Coder le texte en UUencode puis coder en Base64 le resultat pour un double encodage.
PIPELINE
Generer UUID et coder Base64
Generer un UUID et le coder en Base64 pour un stockage compact.
PIPELINE

Outils associés