Maison  >  Article  >  interface Web  >  jquery implémente le cryptage et le décryptage AES

jquery implémente le cryptage et le décryptage AES

WBOY
WBOYoriginal
2023-05-23 22:18:062325parcourir

Avec le développement de la technologie Internet, les problèmes de sécurité des réseaux sont devenus de plus en plus importants. De nombreux sites Web exigent que les utilisateurs saisissent des informations sensibles telles que des mots de passe. Ces informations doivent souvent être cryptées pour garantir la sécurité. AES (Advanced Encryption Standard) est un algorithme de cryptage populaire, efficace, sécurisé et fiable. Dans le développement front-end, l'utilisation de jQuery pour implémenter le cryptage et le déchiffrement AES est une méthode courante.

1. Introduction au cryptage et au décryptage AES

Le cryptage et le décryptage AES sont un algorithme de cryptage symétrique, ce qui signifie que la même clé est utilisée pour le cryptage et le déchiffrement. Il s'agit d'un chiffrement par blocs qui chiffre le texte brut en groupes de blocs pour former un texte chiffré. Il existe trois algorithmes de cryptage AES couramment utilisés : AES-128, AES-192 et AES-256, qui utilisent respectivement des clés de 128 bits, 192 bits et 256 bits.

Le processus spécifique de l'algorithme de cryptage AES est le suivant :

  1. Initialisez l'algorithme d'expansion de clé, générez une clé ronde basée sur la clé et stockez la clé ronde dans un tableau.
  2. Effectuez plusieurs cycles de cryptage, chaque cycle de cryptage comprend quatre étapes : substitution d'octets, décalage de ligne, obscurcissement de colonnes et ajout de clé ronde.
  3. Le dernier cycle de cryptage n'inclut pas la confusion des colonnes et le dernier texte chiffré est le résultat du cryptage.

L'algorithme de décryptage AES est le processus inverse de l'algorithme de cryptage AES, convertissant le texte chiffré en texte brut. Le processus spécifique est le suivant :

  1. Initialisez l'extension de clé, générez la clé ronde et stockez la clé ronde dans un tableau.
  2. Effectuez plusieurs cycles de décryptage. Chaque cycle de décryptage comprend quatre étapes : ajout de clé ronde, obfuscation de colonne inversée, décalage rétrograde et substitution d'octet inversée.
  3. Le dernier cycle de décryptage n'inclut pas l'obscurcissement de la séquence inverse et le texte en clair obtenu est le résultat du décryptage.

2. jQuery implémente le cryptage AES

  1. Présentation de la bibliothèque CryptoJS

Avant d'effectuer l'opération de cryptage AES, vous devez présenter la bibliothèque CryptoJS. CryptoJS est un composant de chiffrement JavaScript qui fournit plusieurs algorithmes de chiffrement tels que AES, DES, Triple DES, Blowfish, MD5 et SHA-1. Il peut être téléchargé sur le site officiel http://cryptojs.altervista.org/.

La façon de présenter la bibliothèque est la suivante :

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
  1. Écriture de fonctions de chiffrement

Après avoir présenté la bibliothèque CryptoJS, vous pouvez écrire des fonctions de chiffrement. Ce qui suit est une implémentation d'une fonction de cryptage AES-256 :

function aesEncrypt(text, key) {
  var encrypted = CryptoJS.AES.encrypt(text, key);
  return encrypted.toString();
}

Le texte du paramètre est le texte brut à chiffrer et la clé du paramètre est la clé. Utilisez d’abord la méthode CryptoJS.AES.encrypt pour effectuer le traitement de chiffrement et obtenir un objet chiffré. Appelez ensuite la méthode toString de l'objet chiffré pour convertir le résultat du chiffrement au format chaîne.

  1. Appelez la fonction de cryptage pour effectuer le cryptage

Après avoir écrit la fonction de cryptage, vous pouvez appeler la fonction dans jQuery pour effectuer des opérations de cryptage. Voici un exemple :

$(document).ready(function() {
   var text = "hello world";
   var key = "this is a secret key";
   var encrypted = aesEncrypt(text, key);
   console.log(encrypted);
});

Passez le texte en clair et la clé à chiffrer en tant que paramètres dans la fonction aesEncrypt pour obtenir le résultat du chiffrement. Dans l'exemple ci-dessus, les résultats du chiffrement seront affichés sur la console.

3. jQuery implémente le décryptage AES

  1. Écrivez la fonction de décryptage

Avant d'effectuer l'opération de décryptage AES, vous devez également introduire la bibliothèque CryptoJS. Ce qui suit est une implémentation d'une fonction de décryptage AES-256 :

function aesDecrypt(text, key) {
  var decrypted = CryptoJS.AES.decrypt(text, key);
  return decrypted.toString(CryptoJS.enc.Utf8);
}

Le texte du paramètre est le texte chiffré à déchiffrer et la clé du paramètre est la clé. Utilisez d’abord la méthode CryptoJS.AES.decrypt pour effectuer le traitement de décryptage et obtenir un objet de décryptage. Appelez ensuite la méthode toString de l'objet déchiffré pour convertir le résultat déchiffré au format chaîne.

  1. Appelez la fonction de décryptage pour décrypter

Après avoir écrit la fonction de décryptage, vous pouvez également appeler la fonction dans jQuery pour effectuer l'opération de décryptage. Voici un exemple :

$(document).ready(function() {
   var text = "U2FsdGVkX1/E0Dtap725gqwH+7D+W2m/6nV9gGPwsYE=";
   var key = "this is a secret key";
   var decrypted = aesDecrypt(text, key);
   console.log(decrypted);
});

Passez le texte chiffré et la clé à déchiffrer en tant que paramètres dans la fonction aesDecrypt pour obtenir le résultat du décryptage. Dans l'exemple ci-dessus, les résultats du décryptage seront affichés sur la console.

4. Résumé

jQuery peut facilement implémenter des opérations de cryptage et de décryptage AES. Il vous suffit d'introduire la bibliothèque CryptoJS pour utiliser l'algorithme AES pour le cryptage et le décryptage. L'utilisation de l'algorithme AES peut garantir la sécurité du cryptage et du déchiffrement et empêcher les fuites d'informations. Lors du développement front-end, l’utilisation de jQuery pour implémenter les opérations de chiffrement et de déchiffrement AES est une méthode courante.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn