Aller au contenu

$cipher.encrypt

Description

Chiffre un fichier ou un texte

Attention, si vous devez embarquer une signature avec les données chiffrées, veuillez utiliser $cipher.encryptAndSign.

Syntaxe

$cipher.encrypt( source [ , options ] )

Paramètres

source file / string
Valeur à chiffrer. Peut désigner un fichier ou une chaîne de caractères contenant la donnée à chiffrer.
options map

Map d'options de chiffrement. La liste des options dépend de l'algorithme de chiffrement souhaité. L'algorithme doit être spécifié via l'option algo.

Ci-dessous nous présentons les différents algorithmes supportés et les options supplémentaires qui s'y rapportent.

Valeur par défaut, désigne un chiffrement AES basé sur un mot de passe avec sel.

Autres options liées à l'algorithme default:

password string

Mot de passe à utiliser pour le chiffrement.

Si non défini, la méthode s'appuie sur le mot de passe défini dans la config de l'application (entrée admin.cipherPassword).

Si cette entrée n'est pas renseignée, la méthode se rabat sur la valeur de la variable d'environnement EWT_ENCRYPT_PASSWORD.

Veuillez utiliser la méthode `$cipher.genPassword pour générer un mot de passe. Les paramètres de chiffrement sont incorporés dans le mot de passe, ce qui permet de renforcer la sécurité des valeurs chiffrées.

Chiffrement PGP. Autres options liées à cet algorithme:

pubkey string
Clé publique à utiliser pour le chiffrement
destination (ou dest) file / string
Fichier ou dossier de destination. Si l'option n'est pas spécifiée, la méthode crée un fichier dans le répertoire de travail de l'application.
compress boolean
Indique que le chiffrement doit effectuer une compression des données au préalable. L'option est true par défaut.
armoredKey boolean

Indique que la clé publique est "armored", c'est-à-dire qu'elle est dans un format lisible (en base64).

Par défaut, la propriété est calculée automatiquement selon les premiers bytes de la clé publique.

armoredOut boolean
Indique que l'on souhaite avoir une sortie au format "armored". Dans ce cas, les caractères non imprimables sont convertis en base64. L'option est false par défaut.
integrity boolean
Indique d'intégrer des éléments de contrôle d'intégrité dans la sortie. L'option est true par défaut.

Retour

Valeur chiffrée

Exemple

Ce premier exemple montre le chiffrement/déchiffrement d'une valeur en utilisant un mot de passe simple. Ici, le terme "simple" ne fait pas référence à la longueur ou la complexité du mot de passe, mais au fait qu'il s'agit d'une valeur litérale passée en direct.

1
2
3
4
5
6
7
var pwd = "changeit";

var encrypted = $cipher.encrypt("hello world!", { password: pwd });
// KmYDJO5/AjexfsHnGteZyrQlwUetnxzqxQw+6nmrshPzCCFNZTaQjf062DUr8mk4OMbywjwNk2Y

var decrypted = $cipher.decrypt(encrypted, { password: pwd });
// hello world!

Le second exemple ci-dessous commence par faire générer le mot de passe au moteur. Le fait d'utiliser $cipher.genPassword pour construire le mot de passe est une bonne pratique, car cela permet de renforcer la robustesse du chiffrement. Veuillez vous référer la documentation de la méthode pour avoir plus de détails.

1
2
3
4
5
6
7
8
var pwd = $cipher.genPassword({ password: "changeit" });
// flobCQohDgkaWghDT1BOWg1DTEtIWhJDT0haF0NNTk5OTk5aHRYfEBkbFwo

var encrypted = $cipher.encrypt("hello world!", { password: pwd });
// oSs+S9y7MNaV3ND5RykjlAk+FBBm2mdnOLCZvXV9EFZavfxx9COvnPisnuUYReTUlEByTYWxI+A

var decrypted = $cipher.decrypt(encrypted, { password: pwd });
// hello world!

Ce troisième exemple est une variante du précédent. Ici on n'impose pas de mot de passe, mais on laisse le moteur en générer un aléatoirement. La valeur de retour est généralement plus longue car le mot de passe généré contient des caractères spéciaux qui prennent plus de bytes lorsqu'ils sont convertis en UTF-8.

1
2
3
4
5
6
7
8
var pwd = $cipher.genPassword();
// 0PS1p6SPoKe09Kbt4f7g9KPt4uXm9Lzt4eb0ue3j4ODg4OD0P29tP29t0j9vbT9vba4/b22p5j9vbYKNP29tP29t9w

var encrypted = $cipher.encrypt("hello world!", { password: pwd });
// 1KV1wBeFGj9mRs+AqOo2jsZE44WYYaRsv8qmt4QyTSsyiVEjMDik2WqS+qRwpfhuvjzs/BHIE4o

var decrypted = $cipher.decrypt(encrypted, { password: pwd });
// hello world!

Des exemples de chiffrement PGP sont disponibles sur la page $cipher