js加密怎么破解 爬虫破解js加密的流程

事件在开发过程中,我们会经常从当前系统跳转到其他系统进行访问或页面嵌套。一般会给一个地址进行参数拼接,然后访问。那么就会出现一个问题,就是如果暴露了地址,参数是明文,就会被篡改,这是极不安全的。这个时候,我们考虑加密。前端和后端商定一个加密方法,然后前端加...

事件

在开发过程中,我们会经常从当前系统跳转到其他系统进行访问或页面嵌套。

一般会给一个地址进行参数拼接,然后访问。那么就会出现一个问题,就是如果暴露了地址,参数是明文,就会被篡改,这是极不安全的。

这个时候,我们考虑加密。前端和后端商定一个加密方法,然后前端加密参数传到后端,后端解密(可逆)。

加密方法有很多种。今天给大家推荐一个强大的前端加密/解密js库——crypto-js

什么是加密js

Crypto-js是一个纯javascript编写的加密算法类库,可以用javascript非常方便地对MD5,SHA1,SHA2,SHA3,RIPEMD-160进行哈希运算,对AES,DES,Rabbit,RC4,Triple DES进行加密解密。

吉图布:https://github.com/brix/crypto-js

固定

npm install crypto-js

使用

ES6模块引入方法:

import sha256 from 'crypto-js/sha256';import h***cSHA512 from 'crypto-js/h***c-sha512';import Base*** from 'crypto-js/enc-base***';

模块加载介绍方法:

var AES = require("crypto-js/aes");var SHA256 = require("crypto-js/sha256");

页面标签引入方法:

<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script><script type="text/javascript"> var encrypted = CryptoJS.AES(...); var encrypted = CryptoJS.SHA256(...);</script>

在项目中使用实例

这里我以React为例,其他都差不多。

步骤1:封装工具类

我们可以编写一个专门封装加密和解密方法的工具类。例如,我创建了一个新的cryptoAES.js文件,并将其放在utils目录中(放在哪里并不重要)。代码如下:

const CryptoJS = require('crypto-js'); //引用AES源码js const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF"); //十六位十六进制数作为密钥const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412'); //十六位十六进制数作为密钥偏移量//解密方法function (word) { let encryptedHexStr = CryptoJS.enc.Hex.parse(word); let srcs = CryptoJS.enc.Base***.stringify(encryptedHexStr); let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString();}//加密方法function Encrypt(word) { let srcs = CryptoJS.enc.Utf8.parse(word); let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); return encrypted.ciphertext.toString().toUpperCase();}export default { Decrypt , Encrypt}

上面代码中的key是key,而iv是key offset。这两个参数的前后是约定一致的,这也算是我们的小秘密了。我们不能告诉别人,否则加密的意义就失去了。

注意钥匙的长度。因为对称解密用的算法是AES-128-CBC算法,数据用PKCS#7填充,所以这里的密钥需要16位!

然后我们定义了解密方法Decrypt加密方法Encrypt,最后通过export和default暴露出来,方便需要时引入…。

类写好了,很简单,然后怎么用~

步骤2:使用工具类。

我们有一个index.tsx文件,它使用加密和解密方法。

我在这里只演示加密和解密。

import { Decrypt, Encrypt } from '/utils /cryptoAES.js';..//比如我组装好了拼接的参数const str = '103170,112425366,253.00,20210428173700'Encrypt(str)

加密的结果是:

hoDfJ9U+uY+v8wYKdudbTUR+Z7g1Ui9YraVhfD9g2fMipYlFxnoLE0qbf+YsnEuk

这里有个问题。加密字符串包含+号。发送时+号会在地址解析中转换成空,直接导致参数传递不正确。所以我们使用JS的encodeURIComponent(),并且可以手动将所有的+号转换成%2B。

encodeURIComponent(str)//返回新结果hoDfJ9U%2BuY%2Bv8wYKdudbTUR%2BZ7g1Ui9YraVhfD9g2fMipYlFxnoLE0qbf%2BYsnEuk

好了,一个简单的前端加密过程就完成了。

摘要

有许多使用加密的场景。这里只说URL地址加密的场景。简单总结一下:

步骤1:安装crypto-js

步骤2:引入crypto-js

第三步:封装工具类(当然也可以直接使用)

第四步:调用工具类。

第五步:用encodeURIComponent的方法转码拼接。

当然,这是最基本的用法。如果想深入了解,可以查一下公文!

End:希望范晓的每一篇文章对你有帮助!

本文来自卿尘投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/542633.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-11
下一篇 05-11

相关推荐

  • 怎么将iphone投屏到电脑 苹果手机投屏电脑直播教程

    我们知道,iPhone或iPad可以很容易地将设备的屏幕内容投影到MAC电脑的屏幕上。同样,IOS设备也可以通过屏幕镜像功能将屏幕内容投影到支持投影的电视上,但我们无法将iPhone或iPad的屏幕直接投影到Windows设备上。如果能做到这个功能,那么我们演示PPT、玩游戏、演示应用或者查

    2023-10-25 16:11:47
    1012 0
  • wps怎么打字打不上去详细介绍

    可能是字体设置为白色,打开WPS2019,打开WPS text,点击“开始”选项,点击字体设置选项右下角的箭头图标,进入字体设置页面,找到字体颜色,选择黑色。如果表单无法输入文本,单元格可能被保护,打开WPS表单,单击“审阅”;当您将插入模式更改为重写模式时,您可以打开文档

    2023-07-29 11:19:01
    1053 0
  • 肯德基在线点餐如何看取餐码(去肯德基怎么点餐)

    餐饮消费是老年人接触新消费、体验互联网时代的重要窗口。餐饮品牌应该怎么做才能更好的服务老年人?吃炸鸡喝奶茶“银发族”餐饮受关注。美团发布的《2021银发经济《食品消费洞察》报告显示,50岁以上中老年消费者增速连续四年第一。与此同时,小吃和快餐炸鸡奶茶,中老年人餐

    2023-07-29 10:56:01
    930 0
  • 腾讯桌面整理怎么自启动

    打开电脑管家,点击工具箱,找到“桌面整理”如图所示桌面整理软件上显示“初始化”这个时候其实是在下载程序,根据你的网速可能需要等待12分钟初始化完成后,在桌面上就可以看到如下图所示的一个可爱的小图标,右键桌面。1首先桌面的腾讯视频的图标,双击打开应用程序2 双击

    2023-07-29 10:55:01
    602 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信