Aller au contenu
Accueil moxon

Symmetric

L'endpoint /symmetric chiffre et déchiffre du texte par chiffrement symétrique AES.

posthttps://api.moxon.dev/v6/symmetric
Essayerpost/v6/symmetric

Paramètres

Le corps de la requête doit être en JSON :

  • action"encrypt" | "decrypt"requis

    Action à effectuer : encrypt ou decrypt

  • textstringrequis

    Texte à chiffrer, ou blob base64 à déchiffrer

  • keystringrequis

    Clé de chiffrement (minimum 8 caractères)

  • algorithm"aes-256-gcm" | "aes-256-cbc" | "aes-128-gcm"optionnel

    Algorithme de chiffrement : aes-256-gcm (défaut), aes-256-cbc ou aes-128-gcm

Dérivation de clé

La clé brute n'est jamais utilisée directement. Elle est dérivée avec scryptSync à partir d'un sel aléatoire de 16 octets, produisant une clé de longueur fixe sécurisée quelle que soit la longueur de l'entrée.

Format du blob

Le résultat chiffré est retourné sous forme de chaîne base64 avec une structure binaire qui dépend de l'algorithme :

GCM : [16 octets sel][12 octets IV][16 octets tag d'authentification][texte chiffré]
CBC : [16 octets sel][16 octets IV][32 octets MAC HMAC-SHA256][texte chiffré]
  • Sel (16 octets) : utilisé pour dériver la clé (et, pour CBC, une clé HMAC séparée)
  • IV : vecteur d'initialisation (12 octets en GCM, 16 octets en CBC)
  • Tag d'authentification / MAC : vérification d'intégrité — un tag GCM natif (16 octets) en GCM, ou un MAC HMAC-SHA256 (32 octets) en CBC, vérifié par comparaison à temps constant
  • Texte chiffré : le contenu chiffré

Passer ce blob comme valeur de text pour déchiffrer.

Changement cassant en 5.4.0

Les blobs CBC embarquent désormais un MAC d'intégrité. Les blobs produits par aes-256-cbc avant la 5.4.0 (sans MAC) ne peuvent plus être déchiffrés — il faut les rechiffrer avec la version actuelle. Les blobs GCM ne sont pas affectés.

Exemples de code

Champs de réponse

  • actionstring

    Action effectuée (encrypt ou decrypt)

  • algorithmstring

    Algorithme de chiffrement utilisé

  • resultstring

    Blob base64 chiffré, ou texte brut déchiffré

Gestion des erreurs

Si les paramètres sont manquants ou invalides, l'API retournera une erreur :

  • 400Action is requiredLe paramètre action est manquant
  • 400Action must be one of: encrypt, decryptLa valeur de action n'est pas valide
  • 400Text is requiredLe paramètre text est manquant ou vide
  • 400Text exceeds maximum allowed lengthLe text dépasse la longueur maximale autorisée
  • 400Key is requiredLe paramètre key est manquant
  • 400Key must be at least 8 charactersLa key fait moins de 8 caractères
  • 400Algorithm must be one of: aes-256-gcm, aes-256-cbc, aes-128-gcmL'algorithm n'est pas supporté