js逆向-常见的加密算法

js逆向-MD5加密

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

  • 解密:

    • 常规讲MD5是不存在解密的,但是理论上MD5可以反向暴力破解,暴力破解的原理就是用很多不同的数据进行加密后跟已有加密数据进行对比,由此来寻找规律。理论上只要数据量足够庞大即可,但是实际中要考虑破解成本(时间和机器性能)。假设破解当前MD5密码需要目前计算能力最优秀的计算机工作100年才能完成破解,那么当前的MD5密码就是安全的
  • 增加破解成本的方法

    • 使用一段无意义且随机的私钥进行MD5加密会生成一个加密串,称为串1
    • 将要加密的数据跟串1拼接,再进行一次MD5,这时会生成串2
    • 将串2再次进行MD5加密,这时生成的串3就是我们加密后的数据
  • 我们在注册账号时密码一般都是MD5加密

AES DES对称加密

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

  • 现在用的AES这个标准来替代原先的DES

  • AES和DES的区别:

    • 加密后秘文长度的不同

      • DES加密后密文长度是8的整数倍
      • AES加密后密文长度是16的整数倍
    • 应用场景的不同

      • 企业级开发使用DES足够安全
      • 如果要求更高使用AES
    • DES和AES切换只需要修改CrytoJS.AES<=>CryptoJS.DES

使用DES/AES进行数据交换时要求双方都拥有相同的私钥
破解方法:

  1. 暴力破解
  2. DES如果使用56位的秘钥,则可能的秘钥数量是2的56次方个。只要计算足够大是可以破解的

DES算法的入口参数有三个:

  • Key、Data、Mode、padding

    • Key为7个字节共56位,是DES算法的工作秘钥
    • Data为8字节64位,是要被加密或被解密的数据
    • Mode为DES的工作方式
    • padding为填充模式,如果加密后密文长度如果达不到指定整数倍(8字节、16字节),填充对应字符 。padding的赋值固定为CryptoJS.pad.Pkcs即可

RSA加密

RSA加密算法是一种非对称加密算法。在公开秘钥加密和电子商业中RSA被广泛使用
非对称加密算法需要两个秘钥:

  • 公开秘钥(publickey:简称公钥)
  • 私有秘钥(privatekey:简称私钥)
  • 公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密,因为加密和解密使用的是两个不同的秘钥,所以这种算法叫做非对称加密算法

注意:

  • 使用时都是使用公钥加密使用私钥解密。公钥可以公开,私钥自己保留
  • 算法强度复杂、安全性依赖于算法于秘钥但是由于其算法复杂,而是的加密解密速度没有对称加密的速度快

使用流程和场景介绍:

  • 通过公钥加密,使用私钥解密,私钥是通过公钥计算生成的,假设ABC三方之间相互要进行加密通信。大家相互之间使用公钥进行信息加密,信息读取使用各自对应的私钥进行信息解密
  • 用户输入的支付密码会通过RSA加密

公钥私钥生成方式:公私钥可以可以在线生成:http://web.chacuo.net/netrsakeypair

base64伪加密

Base64是一种用64个字符来表示任意二进制数据的方法。base64是一种编码方式而不是加密算法,知识看上去像是加密而已
使用A-Z,a-z,0-9,+,/ 这64个字符实现对数据加密

https加密

https是基于http和SSL/TLS实现的一个协议,它可以保证在网络上传输的数据都是加密的,从而保证数据安全
如何实现https

  1. http协议是不安全的
    在https诞生之前,所有网站都是使用的http协议,而http协议在数据传输的过程中都是明文,所以可能存在数据泄露和篡改
    在这里插入图片描述
  2. 使用对称秘钥进行数据加密
    为了防止数据泄露和篡改,我们对数据进行加密,如:生成一个对称密码,将对称秘钥分别交给浏览器和服务器端,他们之间传输的数据都使用对称秘钥进行加密和解密

3.请求和响应流程如下:

  • 客户端使用对称秘钥对请求进行加密,并发送给服务器

  • 服务端接收到密文后,使用对称秘钥对密文进行解密,然后处理请求,最后再使用对称秘钥把返回的内容再次加密,返回给看客户端

  • 客户端接收密文之后,使用对称秘钥进行解密,并获取最终的响应内容

    这样,数据局传输传输都是密文,解决了明文传输数据的问题,但是这样会有bug。

  • 浏览器如何获取对称秘钥

  • 每个客户端的对称秘钥相同,浏览器能拿到对称秘钥,那黑客也能拿到,所以数据加密就没有意义了

  1. 动态对称秘钥和非对称秘钥
    在这里插入图片描述
  • 这样就解决了动态对称秘钥和数据加密的问题,因为每个用户的对称秘钥都是随机生成且传输的过程都使用公钥加密(公钥的加密数据只能有私钥能解密),所有何可无法截获对称秘钥。而数据传输是通过对称秘钥加密过的,所以黑客即使能获取数据也无法去解密可看到真是的内容,看似无懈可击,但是这样还是会出现bug
  • 如果黑客在步骤2进行劫持,把自己的公钥返回给客户端,那客户端会使用黑客的公钥来加密对称秘钥,黑客在步骤6截获请求,使用自己的私钥获取对称秘钥,后面过程全都失去作用
  1. CA证书的应用

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我无法直接回答您的问题。引用提到了DES加密算法,它是一种对称加密算法,需要使用相同的密钥进行加密和解密。引用提到了拼多多的API解密和JS逆向安全控制实现。然而,您的问题是关于加密算法JS逆向安全控制实现的,而不是关于DES加密算法或拼多多API解密的。 对于加密算法JS逆向安全控制实现的问题,我可以提供一些一般性的信息和建议: 1. JS逆向工程:JS逆向工程是指通过分析和破解JavaScript代码来获取其内部逻辑和实现细节。这可以帮助您理解加密算法的实现方式和安全控制措施。 2. 安全控制实现:在加密算法安全控制是指保护密钥和加密数据的措施。这包括密钥管理、访问控制、防止信息泄露等方面的措施。在实现加密算法时,需要考虑这些安全控制措施以确保数据的安全性。 3. 加密算法选择:选择适合您需求的加密算法是非常重要的。不同的加密算法具有不同的安全性和性能特点。您可以根据您的具体需求选择合适的加密算法。 4. 密钥管理:密钥管理是加密算法的一个重要方面。确保密钥的安全性和合理的密钥分发、存储和更新策略是保护加密数据的关键。 5. 安全审计和漏洞修复:定期进行安全审计和漏洞修复是保持加密算法安全性的重要步骤。及时发现和修复潜在的安全漏洞可以防止攻击者利用这些漏洞来破解加密算法。 请注意,以上是一般性的信息和建议,具体的加密算法JS逆向安全控制实现需要根据具体情况进行详细分析和设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值