JS 常见加密

本文详细介绍了JavaScript中常见的加密算法,包括MD5的不可逆特性及其破解方法,DES/AES的对称加密原理,RSA的非对称加密及其应用,以及HTTPS中的对称密钥加密过程。这些知识对于前端开发和爬虫工程师理解加密机制至关重要。
摘要由CSDN通过智能技术生成

JS 常见的加密方式

加密在前端开发和爬虫中是经常遇见的,掌握了加密算法且可以将加密的密文进行解密破解,是你从一个编程小白到大神级别质的飞跃。且加密算法的熟练和剖析也是有助于帮助我们实现高效的 JS 逆向

常见的加密算法基本分为这几类:

  • 线性散列算法(签名算法)MD5
  • 对称性加密算法 AES DES
  • 非对称性加密算法 RSA

一、 MD5 加密

  • MD5 是一种被广泛使用的线性散列算法,可以产生出一个 128 位(16字节)的散列值(hash value),用于确保信息传输完整的一致性。且 MD5 加密之后产生的是一个固定长度(32 位或 64 位)的数据

  • 解密

    • 常规讲 MD5 是不存在解密的。但是理论上 MD5 是可以进行反向暴力破解的。暴力破解的大致原理就是用很多不同的数据进行加密后跟已有的加密数据进行对比,由此来寻找规律。理论上只要数据量足够庞大 MD5 是可以被破解的。但是要啊注意,破解 MD5 是需要考虑破解的成本(时间和机器性能),假设破解当前的 MD5 密码需要目前计算能力最优秀的计算机工作 100 年才能完成破解。那么,当前的 MD5 密码就是安全的
    • 增加破解成本的方法(方法很多,这里是常用的)
      • 使用一段无意义且随机的私钥进行 MD5 加密会生成一个加密串,我们暂且称之为串 1
      • 将要加密的数据跟串 1,拼接,在进行一次 MD5 ,这时会生成串 2
      • 将串 2 在次进行 MD5 加密,这时生成串 3 就是我们加密后的数据
    • 我们在注册账号时的密码一般都是用的 MD5 加密

二、 DES / AES 加密

https://www.cnblogs.com/liuzhongkun/p/16189433.html

  • DES 为数据加密标准,是一种使用密钥加密的算法。该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的密钥(一组字符串)即可

  • 注意:

    • 现在使用 AES 这个标准来代替原先的 DES
    • AES 和 DES 的区别:
      • 加密后密文长度的不同
        • DES 加密后密文长度是 8 的整数倍
        • AES 加密后密文长度是 16 的整数倍
      • 应用场景不同:
        • 企业级开发使用 DES 足够安全
        • 如果要求高使用 AES
    • 使用 DES / AES 进行数据交互时要求双方都拥有相同的私钥
    • 破解方法:
      • 暴力破解
      • DES 如果使用 56 位的密钥,则可能的密钥数量是 2^56 个。只要足够强大是可以被破解的
  • DES 算法入口参数有三个:

    • Key:为 7 个字节共 56 位,是 DES 算法的工作密钥

    • Data:为 8 个字节 64 位,是要被加密或别解密的数据

    • Mode:为 DES 的工作方式

    • padding:为填充模式,如果加密后密文长度如果达不到整数倍(8个字节、16个字节),填充对应的字符

      • padding 的赋值固定为 CryptoJS.pad.Pkcs7 即可
      <html>
          <script src="https://cdn.bootcdn.net/ajax/libs/crypto-js/4.1.1/aes.js"></script>    <script>
              var aseKey = "12345678";  
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SteveKenny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值