Skip to content

Symmetric

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

Paramètres

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

ParamètreRequisDescription
actionOuiAction à effectuer : encrypt ou decrypt
textOuiTexte à chiffrer, ou blob base64 à déchiffrer
keyOuiClé de chiffrement (minimum 8 caractères)
algorithmNonAlgorithme 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

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "action": "encrypt",
    "text": "hello",
    "key": "mysecretkey"
  }' \
  "https://api.sylvain.sh/v5/symmetric"

Champs de réponse

ChampTypeDescription
actionstringAction effectuée (encrypt ou decrypt)
algorithmstringAlgorithme de chiffrement utilisé
resultstringBlob base64 chiffré, ou texte brut déchiffré

Essayer

Gestion des erreurs

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

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