AES加密和解密详解

2023-10-27

本文使用的是cyrpto-js库,以AES-CBC为例:

先安装cyrpto-js :cyrpto-js是js专门用来加密和解密用到的一个库。

第一步,先确认一下电脑是否有node和npm,输入node --version显示 v 版本号就可以下一步 

第二步,打开项目的所在根目录,路径位置 输入cmd打开 控制台

第三步,在第二步打开的地方输入 npm install jsdom 

结束后会发现多了 一个文件夹,说明安装成功了 

 下面对AES进行加密和解密:

let CryptoJS = require('crypto-js');		// 调用crypto-js 模块

// ## AES-CBC模式加密
let key = CryptoJS.enc.Utf8.parse('0CoJUm6Qyw8W8jud'),  //密钥必须是16位,utf8编码方式
	iv = CryptoJS.enc.Utf8.parse("0102030405060708");   //iv也是16位哦, utf8编码方式

function jiami(text){
	let srcs = CryptoJS.enc.Utf8.parse(text);
	let encryptedData  = CryptoJS.AES.encrypt(srcs, key, {
		iv: iv,
	    mode: CryptoJS.mode.CBC,
	    padding: CryptoJS.pad.Pkcs7
	});
	let hexData = encryptedData.ciphertext.toString();
	return hexData;
}

// hexData = 5d405dde1859ed49e8eaed988b82c8bf

// ## AES-CBC模式解密
function jiemi(hexData){
    let encryptedHexStr  = CryptoJS.enc.Hex.parse(hexData), //把加密数据以Hex编码方式转成数组
    	encryptedBase64Str  = CryptoJS.enc.Base64.stringify(encryptedHexStr), //把上一步的数组以Baes64编码方式转成字符串 
    	decryptedData  = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
});  
    let text = decryptedData.toString(CryptoJS.enc.Utf8);  
    return text;  // 得到解密结果
}

console.log(jiami('123456'));
console.log(jiemi('3ea397412b78f3a1974640e6b3294c98'))

更多爬虫项目:GitHub - wu50416/spider_projects: 个人的爬虫项目

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AES加密和解密详解 的相关文章

  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 使用 subprocess.Popen() 或 subprocess.check_call() 时程序卡住

    我想从 python 运行一个程序并找到它的内存使用情况 为此 我正在使用 l a out lt in txt gt out txt p subprocess Popen l shell False stdout subprocess PI
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 高级描述熊猫

    有没有像 pandas 那样更高级的功能 通常我会继续这样 r pd DataFrame np random randn 1000 columns A r describe 我会得到一份很好的总结 就像这样 A count 1000 000
  • 数据框中 .map(str) 和 .astype(str) 有什么区别

    我有一个数据框 其列名为 col1 和 col2 的整数类型条目 我想将 col1 和 col2 的条目以及其间的 点 连接起来 我搜索并发现添加两个列条目 df col df col1 map str df col2 map str 并添
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • 如何通过 Python Requests 库使用基本 HTTP 身份验证?

    我正在尝试在 Python 中使用基本的 HTTP 身份验证 我正在使用Requests https docs python requests org 图书馆 auth requests post http hostname auth HT
  • 从 wxPython 事件处理程序中调用函数

    我正在努力寻找一种在 wxPython 事件处理函数中使用函数的方法 假设我有一个按钮 单击该按钮时 它会使用事件处理程序运行一个名为 OnRun 的函数 但是 用户忘记单击 OnRun 按钮之前的 RadionButton 我想弹出一个
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • 如何创建用于霍夫曼编码和解码的树?

    对于我的作业 我将对霍夫曼树进行编码和解码 我在创建树时遇到问题 并且陷入困境 不要介意打印语句 它们只是让我测试并查看函数运行时的输出是什么 对于第一个 for 循环 我从主块中用于测试的文本文件中获取了所有值和索引 在第二个 for 循
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • 搜索多维数组 JavaScript

    我有一个如下所示的数组 selected products 0 r1 7up 61 Albertsons selected products 1 r3 Arrowhead 78 Arrowhead selected products 2 r
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • 基于值的 matplotlib 条形图颜色

    有没有一种方法可以根据条形图的值对条形图的条形进行着色 例如 values below 0 5 red values between 0 5 to 0 green values between 0 to 08 blue etc 我找到了一些
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • 模拟电路设计(9)--- VMOSFET

    MOS器件虽然漏极电流可以达到数安培 漏源电压可以达到100V以上 但是由于漏源电阻大 频率特性差 硅片面积利用率低等缺点 使得MOSFET在功率上有很大的限制 随着VMOS技术移植到MOS功率器件后 VMOSFET的耐压可达到1000V以
  • 深度学习环境配置——(Cuda11)windows下的torch==1.7.1环境配置

    学习前言 好多30系显卡呀 虽然很贵 但是为了深度学习也没有办法欸 该博客主要是为了30系显卡写的 当然不一定一定要30系列显卡 只要支持Cuda11都可以这样配置 环境内容 pytorch 1 7 1 torchvision 0 8 2
  • 决策树分类器DecisionTreeClassifier参数解释

    sklern中使用sklearn tree DecisionTreeClassifier类来实现决策树分类算法 模型调参常用参数如下 名称 功能 描述 criterion 特征选择标准 gini or entropy default gin
  • 软件测试/测试开发丨学会与 AI 对话,高效提升学习效率

    点此获取更多相关资料 简介 ChatGPT 的主要优点之一是它能够理解和响应自然语言输入 在日常生活中 沟通本来就是很重要的一门课程 沟通的过程中表达越清晰 给到的信息越多 那么沟通就越顺畅 和 ChatGPT 沟通也是同样的道理 如果想要
  • 内网工作站部署

    概述 为了方便做各种实验 我买了几台服务器放在家里 服务器上安装了虚拟化系统 运行的虚拟机有十几台 在家里的时候 我可以很方便的连接服务器 但是到了单位或出差的时候 连接服务器变得比较麻烦了 最开始我使用各种内网穿透的方案 但是虚拟机很多
  • SylixOS热插拔实现实例(四)

    1 网卡热插拔实现 SylixOS中 热插拔消息是在创建热插拔设备时产生 由热插拔设备驱动实现 下面介绍以网卡热插拔为例 介绍网卡热插拔消息产生流程 以mini2440网卡驱动为例 驱动程序通过调用API HotplugPollAdd函数将
  • 向数组中输入字符串的三种方法

    像一维数组中输入一串字符并输出 第一种方法 用gets 获取字符串 输出结果 第二种方法 利用scanf输入字符 注意不能获取空格 结果 第三种方法 利用while循环getcchar 结果
  • C#如何调用外部exe程序

    http blog csdn net cyamazing article details 52849106 1 在主界面添加调用外部exe程序的Button 双击此Button进入代码编辑页面 在程序的开始using System Diag
  • OpenCV阈值处理(threshold函数、自适应阈值处理、Otsu处理)

    目录 阈值处理 一 threshold函数 1 二值化阈值处理 cv2 THRESH BINARY 2 反二值化阈值处理 cv2 THRESH BINARY INV 3 截断阈值化处理 cv2 THRESH TRUNC 4 超阈值零处理 c
  • 刷脸支付能够很好的解决扫码支付的弊端

    刷脸支付设备采用的是目前安全系数最高的3D结构光摄像头技术 使用毫米级景深信息检测 在用户第一次使用时 就通过光感点阵 采集了用户独一无二的生物身份信息 然后与实名认证后的支付宝账号相连 来达到安全支付的效果 也就是说 就算不法分子拿着我们
  • cpp在vector中查找find元素

    假如我有一个vector数组 需要查询某个数是否在数组中 某个数在数组中第一次出现的位置 这个时候就需要用到
  • Python——UDP Socket实现视频互传,远程调用另一台电脑摄像头(cv2)

    一台电脑当服务器多线程提供摄像头服务 支持多台电脑调用 目录 一台电脑当服务器多线程提供摄像头服务 支持多台电脑调用 一 效果展示 和舍友联机 多台电脑效果 二 带注释的代码 1 服务端 2 客户端 一 效果展示 和舍友联机 多台电脑效果
  • 力扣刷题 每日两题(一)

    一 力扣20题 class Solution object def isValid self s type s str rtype bool if len s 0 return True stack for c in s if c or c
  • FISCO-BCOS 一、默认配置搭建区块链网络

    一 采用默认配置搭建区块链网络 1 安装openssl ubuntu依赖 sudo apt install y openssl curl 2 创建操作目录 下载安装脚本 cd mkdir p fisco cd fisco 3 搭建单群组4节
  • 面试分享

    在软件测试的面试过程中 经常会出一些测试基础的问题 以此来评估应聘者的基本测试功底和知识储备 下面我就为大家整理了一些软件测试常见面试题及答案 仅供参考 之前的推文也有分享过相关的软件测试面试题 正在准备面试的小伙伴们可以进入本公众号 面试
  • flutter内存泄漏常见分析

    内存泄漏是Flutter中的一个常见问题 以下是一些可能导致内存泄漏的情况和注意事项 未释放控制器 在使用一些控制器 如AnimationController TextEditingController等 时 需要在不需要时及时释放控制器
  • 创建线程的方式打开记事本

    更好的阅读体验 huge color red 更好的阅读体验 更好的阅读体验 今天操作系统课老师讲到进程 提出了一个有趣的小实验 能否以系统调用的方式利用 Windows 创建进程的系统调用函数来打开一个软件 闲着蛋疼的我立马来了兴趣 姑且
  • unity开发VR,没有VR设备解决方式

    文章目录 前言 一 环境搭建 1 普通VR环境搭建 2 虚拟相机搭建 二 模拟相机的操作 总结 前言 开发实例环境为unity2018 4 11 VRTK3 3 0 steamVR1 2 23 当我们身边没有HTC VIVE设备时我们不能去
  • Android Studio中的mavenCentral、jcenter、google仓库

    一 Android Studio中依赖是从哪里得到 是从工程的build gradle里面定义的Maven仓库服务器去下载library的 总的来说 只有两个标准的Android library文件服务器 mavenCentral和jcen
  • AES加密和解密详解

    本文使用的是cyrpto js库 以AES CBC为例 先安装cyrpto js cyrpto js是js专门用来加密和解密用到的一个库 第一步 先确认一下电脑是否有node和npm 输入node version显示 v 版本号就可以下一步