• 常用JS加密/解密类型以及案例


    在这里插入图片描述

    简介

    这里给大家汇总常用不常用的JS加密案例,免得大家用的时候到处去找例子。

    正题

    1. 对称加密

      • 替代字符表示法:使用Base64或类似的编码对数据进行简单的转换,不过这并不是真正的加密,而只是一种表示形式的转换。

      • DOCTYPE html>
        <html>
        <body>
        
        <h2>Base64编码示例h2>
        
        <p>原始文本: Hello, World!p>
        
        <p>Base64编码结果:p>
        <p id="encoded-text">p>
        
        <script>
            var text = "Hello, World!";
            var encodedText = btoa(text);
            document.getElementById("encoded-text").innerHTML = encodedText;
        script>
        
        body>
        html>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
      • JavaScript加密库:通过在HTML中嵌入JavaScript加密库,可以实现一些对称加密算法,如AES(Advanced Encryption Standard)等。

      • // AES
        DOCTYPE html>
        <html>
        <head>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js">script>
        head>
        <body>
        
        <h2>AES加密示例h2>
        
        <p>原始文本: Hello, World!p>
        
        <p>AES加密结果:p>
        <p id="encrypted-text">p>
        
        <script>
            var plaintext = "Hello, World!";
            var passphrase = "MySecretPassphrase";
        
            // Encrypt
            var encryptedText = CryptoJS.AES.encrypt(plaintext, passphrase).toString();
        
            document.getElementById("encrypted-text").innerHTML = encryptedText;
        script>
        
        body>
        html>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
    2. 非对称加密

      • RSA加密:通过使用JavaScript实现RSA算法,可以在浏览器中进行非对称加密。但是这种方法可能存在性能问题,尤其是在处理大量数据时。

      • DOCTYPE html>
        <html>
        <head>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/3.0.0/jsencrypt.min.js">script>
        head>
        <body>
        
        <h2>RSA加密示例h2>
        
        <p>原始文本: Hello, World!p>
        
        <p>RSA加密结果:p>
        <p id="encrypted-text">p>
        
        <script>
            var text = "Hello, World!";
            var encrypt = new JSEncrypt();
            var publicKey = "YOUR_PUBLIC_KEY"; // 请用真实的公钥替换
            encrypt.setPublicKey(publicKey);
            var encrypted = encrypt.encrypt(text);
            document.getElementById("encrypted-text").innerHTML = encrypted;
        script>
        
        body>
        html>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
      • JavaScript加密库:使用JavaScript加密库如OpenSSL或其他JavaScript加密库,可以在HTML中实现非对称加密功能。

      • const crypto = require('crypto');
        
        const plaintext = 'Hello, World!';
        const publicKey = `-----BEGIN PUBLIC KEY-----
        YOUR_PUBLIC_KEY
        -----END PUBLIC KEY-----`; // 请用实际的公钥替换
        
        const encrypted = crypto.publicEncrypt(publicKey, Buffer.from(plaintext));
        
        console.log(encrypted.toString('base64'));
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
    3. 哈希加密

      • MD5/SHA-1/SHA-256等哈希算法:通过JavaScript实现这些哈希算法,可以对数据进行单向的哈希加密,生成相应的哈希值。
      • MD5哈希加密
      • JavaScript加密库:一些JavaScript加密库提供了多种哈希算法的实现,可以直接在HTML中调用这些库来实现哈希加密。
      htmlCopy codeDOCTYPE html>
      <html>
      <body>
      
      <h2>MD5哈希加密示例h2>
      
      <p>原始文本: Hello, World!p>
      
      <p>MD5哈希值:p>
      <p id="md5-hash">p>
      
      <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js">script>
      <script>
          var text = "Hello, World!";
          var md5Hash = CryptoJS.MD5(text).toString();
          document.getElementById("md5-hash").innerHTML = md5Hash;
      script>
      
      body>
      html>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      1. SHA-1哈希加密
      htmlCopy codeDOCTYPE html>
      <html>
      <body>
      
      <h2>SHA-1哈希加密示例h2>
      
      <p>原始文本: Hello, World!p>
      
      <p>SHA-1哈希值:p>
      <p id="sha1-hash">p>
      
      <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js">script>
      <script>
          var text = "Hello, World!";
          var sha1Hash = CryptoJS.SHA1(text).toString();
          document.getElementById("sha1-hash").innerHTML = sha1Hash;
      script>
      
      body>
      html>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      1. SHA-256哈希加密
      htmlCopy codeDOCTYPE html>
      <html>
      <body>
      
      <h2>SHA-256哈希加密示例h2>
      
      <p>原始文本: Hello, World!p>
      
      <p>SHA-256哈希值:p>
      <p id="sha256-hash">p>
      
      <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js">script>
      <script>
          var text = "Hello, World!";
          var sha256Hash = CryptoJS.SHA256(text).toString();
          document.getElementById("sha256-hash").innerHTML = sha256Hash;
      script>
      
      body>
      html>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
    4. SSL/TLS

      • 使用HTTPS协议:尽管不是HTML本身的一部分,但可以通过在HTML页面中引用HTTPS链接来确保数据在传输过程中的安全性。

    需要注意的是,在实际应用中,为了实现更强大的加密功能,往往需要借助其他技术。单一的对数据进行加密没有太大的作用,用户可以通过分析前端代码模拟出一样的加密内容。

    为了进一步加大保护系数,建议使用jsjiami一键在线JS加密工具把所有逻辑加密一遍,变成看不懂的逻辑,但功能保持不变。

    关于最后

    如果有部分用户,在加密JS的时候,忘记备份自己的源代码导致源代码丢失,可以找上边网站的客服进行付费的人工解密服务。任何加密都可以,只要是js加密。

  • 相关阅读:
    四、抽象工厂模式
    基于微信中介看房预约小程序系统设计与实现 开题报告
    述职报告写作总结
    http协议(序列化与反序列化)
    Spring AOP使用与原理
    【chainlit】使用chainlit部署chatgpt
    vscode 导入自定义包报错 ModuleNotFoundError: No module named xxx方法合集
    vue3探索——pinia高阶使用
    问题 D: 是否为有效的拓扑序列
    Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(三)
  • 原文地址:https://blog.csdn.net/mxd01848/article/details/133912038