Maison  >  Article  >  interface Web  >  Comment utiliser simplement CryptoJS

Comment utiliser simplement CryptoJS

一个新手
一个新手original
2017-09-25 10:21:157510parcourir

CryptoJS (crypto.js) fournit une variété d'algorithmes de chiffrement pour JavaScript. Les algorithmes actuellement pris en charge incluent : MD5SHA-1SHA-256AESRabbitMARC4HMACHMAC-MD5HMAC-SHA

Adresse de téléchargement spécifique : cliquez pour télécharger

Il existe principalement deux dossiers, composants et rollups

Le premier est le composant et le second est le résumé.

Les fichiers du dossier récapitulatif sont compressés après l'assemblage d'un ou plusieurs dossiers.

Cela permet l'agrégation de dossiers séparés dans vos fichiers de projet sans avoir à vous soucier de ses dépendances.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CryptoJS</title>
    <script src="js/CryptoJS%20v3.1.2/components/core.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/md5.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/evpkdf.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/enc-base64.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/cipher-core.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/aes.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/hmac.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/sha1.js"></script>
    <script src="js/CryptoJS%20v3.1.2/components/sha256.js"></script>
</head>
<body>
<p id="content"></p>
    <script>
        var md5 = CryptoJS.MD5("Message").toString(CryptoJS.enc.Hex);
        console.log("md5 = %s", md5);

        var sHA1 = CryptoJS.SHA1("Message").toString(CryptoJS.enc.Hex);
        console.log("sHA1 = %s", sHA1);

        var sHA256 = CryptoJS.SHA256("Message").toString(CryptoJS.enc.Hex);
        console.log("sHA256 = %s", sHA256);

        var hmacMD5 = CryptoJS.HmacMD5("Message", "Secret Passphrase").toString(CryptoJS.enc.Hex);
        console.log("hmacMD5 = %s", hmacMD5);

        var hmacSHA1 = CryptoJS.HmacSHA1("Message", "Secret Passphrase").toString(CryptoJS.enc.Hex);
        console.log("hmacSHA1 = %s", hmacSHA1);

        var aesEncrypt = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
        console.log("aesEncrypt = %s", aesEncrypt.iv.toString(CryptoJS.enc.Hex));

        var aesDecrypt = CryptoJS.AES.decrypt(aesEncrypt, "Secret Passphrase");
        console.log("aesDecrypt = %s", aesDecrypt.toString(CryptoJS.enc.Utf8));

        // base64 encrypt
        var rawStr = "hello world!";
        var wordArray = CryptoJS.enc.Utf8.parse(rawStr);
        var base64 = CryptoJS.enc.Base64.stringify(wordArray);
        console.log(&#39;base64Encrypt = &#39;, base64);

        // base64 decrypt
        var parsedWordArray = CryptoJS.enc.Base64.parse(base64);
        var parsedStr = parsedWordArray.toString(CryptoJS.enc.Utf8);
        console.log(&#39;base64Decrypt = &#39;,parsedStr);
    </script>
</body>
</html>

Le front-end utilise la bibliothèque de classes CryptoJS pour effectuer le cryptage AES et le soumettre au backend. Après cela, le décryptage du backend échoue et une erreur est signalée. Étant donné le bloc final mal rembourré Réussi Après quelques recherches, j'ai enfin trouvé une solution !

Étant donné que Java en arrière-plan utilise le cryptage AES et utilise AES/EBC/PKCS5Padding pour l'initialisation,

1、首先var key = CryptoJS.enc.Utf8.parse(key);  
2、由于后端用的PKCS5Padding,而CryptoJS类库类库中没有,但有PKCS7Padding,跟PKCS5Padding是一样的,所以加密时加上红色部分的参数即可:CryptoJS.AES.encrypt(text, key, {  
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
});

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