加密 scrapy

2023-11-09

js常见的加密方式

加密在前端开发和爬虫中是经常遇见的。掌握了加密算法且可以将加密的密文进行解密破解的,也是你从一个编程小白到大神级别质的一个飞跃。且加密算法的熟练和剖析也是很有助于帮助我们实现高效的js逆向。下述只把我们常用的加密方法进行总结。不去深究加密的具体实现方式。

常见的加密算法基本分为这几类:
线性散列算法(签名算法)MD5
对称性加密算法 AES DES
非对称性加密算法 RSA

Md5加密

MD5是一种被广泛使用的线性散列算法,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整的一致性。且MD5加密之后产生的是一个固定长度(32位或16位)的数据。
解密:
常规讲MD5是不存在解密的。但是理论上MD5是可以进行反向暴力破解的。暴力破解的大致原理就是用很多不同的数据进行加密后跟已有的加密数据进行对比,由此来寻找规律。理论上只要数据量足够庞大MD5是可以被破解的。但是要注意,破解MD5是需要考虑破解的成本(时间和机器性能)。假设破解当前的MD5密码需要目前计算能力最优秀的计算机工作100年才能破解完成。那么当前的MD5密码就是安全的。
增加破解成本的方法(方法很多,这里只说我常用的)。

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

<html>
	<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script>
    <script type="text/javascript">
		var hashCode = md5("i am bobo!"); 
		alert(hashCode)
	</script>
		
</html>

DES/AES加密

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

AES和DES的区别:
加密后密文长度的不同:
DES加密后密文长度是8的整数倍
AES加密后密文长度是16的整数倍
应用场景的不同:
企业级开发使用DES足够安全
如果要求高使用AES
DES和AES切换只需要修改 CryptoJS.AES <=> CryptoJS.DES
使用DES/AES进行数据交互时要求双方都拥有相同的私匙

破解方法:
暴力破解。
DES如果使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。只要计算足够强大是可以被破解的
DES算法的入口参数有三个:
Key、Data、Mode,padding。
Key为7个字节共56位,是DES算法的工作密钥;
Data为8个字节64位,是要被加密或被解密的数据;
Mode为DES的工作方式。
padding为填充模式,如果加密后密文长度如果达不到指定整数倍(8个字节、16个字节),填充对应字符
padding的赋值固定为CryptoJS.pad.Pkcs7即可

<html>
	<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.js"></script>
    <script type="text/javascript">
		  var aseKey = "12345678"     //定制秘钥,长度必须为:8/16/32位
		  var message = "i am bobo,who are you ?";
		  //加密 DES/AES切换只需要修改 CryptoJS.AES <=> CryptoJS.DES
		  var encrypt = CryptoJS.DES.encrypt(message, CryptoJS.enc.Utf8.parse(aseKey), {
			mode: CryptoJS.mode.ECB,
			padding: CryptoJS.pad.Pkcs7
		  }).toString();

		  alert(encrypt); // 0Gh9NGnwOpgmB525QS0JhVJlsn5Ev9cHbABgypzhGnM

		  //解密
		  var decrypt = CryptoJS.DES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(aseKey), {
			mode: CryptoJS.mode.ECB,
			padding: CryptoJS.pad.Pkcs7
		  }).toString(CryptoJS.enc.Utf8);

		  alert(decrypt); // 我是一个密码
	</script>
		
</html>

RSA加密

RSA加密:
RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。
非对称加密算法:
非对称加密算法需要两个密钥:
公开密钥(publickey:简称公钥)
私有密钥(privatekey:简称私钥)
公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

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

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

公钥私钥生成方式:
公私匙可以在线生成

http://web.chacuo.net/netrsakeypair
<html>
	<script src="https://cdn.bootcss.com/jsencrypt/3.0.0-beta.1/jsencrypt.js"></script>
    <script type="text/javascript">
        //公钥
        var PUBLIC_KEY = '-----BEGIN PUBLIC KEY-----MFwwDQYJKoZIhvcNAQEBBQA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加密 scrapy 的相关文章

  • C语言中signal函数简介及使用

    signal h是C标准函数库中的信号处理部分 定义了程序执行时如何处理不同的信号 信号用作进程间通信 报告异常行为 如除零 用户的一些按键组合 如同时按下Ctrl与C键 产生信号SIGINT C 中的对应头文件是csignal C语言标准
  • Jenkins Android项目编译配置(完整版)

    Jenkins编译项目配置 环境要求 Jenkins准备 安装 启动 初始化 全局配置 全局工具 Global Tool Configuration 凭据 项目示例 General 源码管理 构建触发器 构建环境 构建 构建后操作 需要的插
  • C++ 函数覆盖

    C 函数覆盖 在派生类和基类中都定义了相同的函数 如果使用派生类的对象调用这个函数 派生类的函数就会被执行 这在 C 中称为函数覆盖 派生类中的函数覆盖基类中的函数 示例 1 C 函数覆盖 include
  • cblas_sgemm和cublasSgemm参数详解

    机器学习最核心的底层运算肯定是矩阵乘法无疑了 为了让矩阵乘法执行更快 大家也是绞尽脑汁 从算法层面 stranssen算法将矩阵乘法复杂度由 O n 3 O n 3 O n3 降
  • SSH方式连接Git及报错处理:RPC failed; result=22, HTTP code = 502

    Git作为常用的分布式版本控制系统 当前十分流行 我们已经介绍过有关Git进行版本控制的内容 但在实际使用Git过程中还是会遇到各种问题 今天就针对一个Git报错进行处理 通过HTTPS的git地址 clone到本地 初始一个项目包 add
  • Android Studio开发环境

    Android Studio 开发环境 React Native创建项目需要 java 开发环境 gt jdk 只需配置环境变量 gradle 只需配置环境变量 Android Studio 安装Android Studio Android
  • 固态硬盘启动计算机时间,装了固态硬盘开机还是慢,其实是忽略了这些...

    原标题 装了固态硬盘开机还是慢 其实是忽略了这些 你的电脑开机速度打败了全国百分之多少的用户 每天是否需要等上一段时间电脑才会开机 如果是这样 有人会说你该换个固态硬盘了 温馨提醒哦 这几个问题不解决 换了也没用 一 自检太慢 可以在BIO
  • 聊聊Java中的异常及处理

    前言 在编程中异常报错是不可避免的 特别是在学习某个语言初期 看到异常报错就抓耳挠腮 常常开玩笑说编程1分钟 改bug1小时 今天就让我们来看看什么是异常和怎么合理的处理异常吧 异常与error介绍 下面还是先让我们来看一下基本概念吧 异常
  • * \r \r\n \t的区别,是什么意思

    n 软回车 在Windows 中表示换行且回到下一行的最开始位置 相当于Mac OS 里的 r 的效果 在Linux unix 中只表示换行 但不会回到下一行的开始位置 r 软空格 在Linux unix 中表示返回到当行的最开始位置 在M
  • 【保姆式教程】用PowerDesigner导出数据库表结构为Word/Excel表格

    使用PowerDesigner将表结构导出到word表格 一 PowerDesigner的下载安装 已安装的跳过 PowerDesigner下载地址 后面只要next gt gt next gt gt finish 将track目录中的文件
  • 信奥赛和少儿编程的区别

    信奥赛和少儿编程的区别 现在的家长在培养孩子的学习的时候 可以说是非常的用心 他们会给孩子选择一些能够提升孩子能力的课程 就拿现在很多的家长想要孩子去学习少儿编程的课程来说 他们对于少儿编程和信息学奥赛的区别并不是很清楚 今天我们就一起来了
  • 类加载机制

    类的加载的机制 主要从两个方面回答 我们自己写的java文件到最终的运行 它必须经过编译和类加载这两个阶段 编译的过程就是把 java文件编程成class文件 类加载过程 就是把 class文件加载到JVM内存中 装载完成后会得到一个cla
  • 在浏览器上调试公众号网页的操作流程

    痛点说明 在实际开发过程中 公众号或者小程序开发都涉及到授权登录 我们最初原始的做法都是写好代码后 发布在测试环境中 然后再进行调试 有一个头痛的点在于如果你要验证你的想法 改动js的话 那么必须重新打包编译 打包和发布都是非常耗时的 引出
  • matlab大作业含代码_目标检测

    点击上方 AI算法修炼营 选择加星标或 置顶 标题以下 全是干货 来自 知乎 作者丨初识CV 来源丨https zhuanlan zhihu com p 102817180 仅作学术交流 如有侵权 请联系删文 一 数据增强 数据增强是增加深
  • Blender 2.8安装插件及如何找到打开插件

    安装插件 编辑 设置 插件 搜索 下载 安装 找到插件 安装的插件可在其下拉列表中看到所在位置 实在找不到 直接搜索
  • Java BigDecimal总结

    文章目录 Java BigDecimal总结 概述 float 和 double的问题 创建BigDecimal对象 BigDecimal valueOf 源码分析 equals 和 compareTo BigDecimal设置精度和舍入模
  • Kioptrix_Level_1-writeup

    Kioptrix Level 1 writeup 0x00 信息收集 目标机器IP 16 16 16 176 kali攻击机 16 16 16 177 nmap扫描端口服务 nmap A Pn 16 16 16 176 Starting N
  • 如何安装JDK

    Orade 公司提供了多种操作系统的 JDK 不同操作系统的 JIDK 在使用上基本类似 初学者可以根据自已使用的操作系统 从Cnacle 官方网站下载相应的JDK 安装文件 下面以64位的 Windows 10系统为的来演示 JDK 8
  • 对象的实例化

    对象的实例化 创建对象的方式 new Class的newInstance 只能调用空参的构造器 权限必须是public Constructor的newInstance Xxx 可以调用空参 带参的构造器 权限没有要求 使用clone 需要实
  • python进阶知识点汇总

    一 函数 1 函数的传参 1 值传递 将实际的参数复制一份传递给形参 函数中修改形参时 不会影响到实际参数 def a b c 2 return b c print a 10 print a 123 2 print a 2 2 引用传递 将

随机推荐

  • 一张图看懂区块链

    要逐步了解区块链 我们需要一步步了解如下东西 去中心化 先来考虑一个中心化集中式处理的过程 你要在某宝上买一部手机 交易流程是 你将钱打给支付宝 支付宝收款后通知卖家发货 卖家发货 你确认收货 支付宝把钱打给卖家 在这个过程中 虽然你是在和
  • Vert.x的TCP服务端和客户端配置

    Vert x系列 Vert x介绍 https blog csdn net haoranhaoshi article details 89279096 Vert x实战一 Vert x通过Http发布数据 https blog csdn n
  • 蓝桥杯2020省赛单词分析

    题目描述 小蓝正在学习一门神奇的语言 这门语言中的单词都是由小写英文字母组 成 有些单词很长 远远超过正常英文单词的长度 小蓝学了很长时间也记不住一些单词 他准备不再完全记忆这些单词 而是根据单词中哪个字母出现得最多来分辨单词 现在 请你帮
  • RHEL/CentOS 7中的网络暨network.service与NetworkManager.service详解

    在RHEL CentOS 6及以前的版本中 网络功能是通过一系列网络相关的脚本文件实现 如 etc init d network文件 及如下 sbin if 文件等 root myserver ll sbin if rwxr xr x 1
  • ESP32s3 MSC/U盘 虚拟串口

    ESP32s3 MSC U盘 虚拟串口 开发环境是 IDF4 4 芯片 esp32s3 在项目中想要用到把内部的FLASH做成U盘 但是在idf4 4中没有找到MSC相关例程 如图 1 我在网上只找到esp32s2的例程 https git
  • 英国第七批36颗互联网卫星升空

    导读 英国卫星通信公司OneWeb 36颗卫星从俄东方航天发射场点火升空 累计在轨卫星218颗 据外媒 英国卫星通信公司OneWeb 36颗卫星从俄东方航天发射场点火升空 累计在轨卫星218颗 根据OneWeb的说法 只需要再发射一批36颗
  • 解决“unable to access ‘https://github.com...”

    前提 我在操作的时候做了https授权 但是密码输入错误了 再找想改也找不到了 搞半天都会报这个错 甚至我想用秘钥的方式都不行 万恶的git 解决方法 git config global http sslVerify false 然后正常操
  • STM32F103ZET6【HAL函开发】STM32CUBEMX------USART串口实验(DMA)

    printf重定义 需要将下面的代码插入到usart c里面 USER CODE BEGIN 1 if 1 include
  • hive集群安装,连接mysql

    1 linux安装mysql 并且生成hive用户 密码为Abc 123D 权限为所有权限 请看 这点很重要 http blog csdn net qq 21383435 article details 76573955 2 我的hadoo
  • JAVA中的目录指什么_默认情况下,Java listFiles()读取目录中的文件的顺序是什么? - java...

    我编写了以下程序 该程序读取目录中的所有文件 所有文件名均由数字组成 例如10023134 txt File dir new File directoryPath File files dir listFiles for File file
  • 内存管理实战案例分析3:为何分配不出一个页面?

    微信公众号 奔跑吧linux社区本文节选自 奔跑吧Linux内核 第二版卷1第6 3 3章 1 问题描述 下面是有问题的OOM Killer内核日志 其中空闲页面为86048KB 最低警戒水位为22528KB 低水位为28160KB 读者可
  • 如何使用iMazing监督、配置器功能

    监督功能是一种移动设备管理技术 使得Apple设备所有人具有最高管理权 设备受到监督之后 仅仅可以在监督人设定的模式下运行Apple设备 如单应用运行模式 权限限制模式 禁用配对模式等 最近很火的网剧 你安全了吗 就是宣传网络安全的 利用i
  • 【mySQL】MySQL JOIN原理

    MySQL JOIN原理 先看一下实验的两张表 表comments 总行数28856 表comments for 总行数57 comments id是有索引的 ID列为主键 以上两张表是我们测试的基础 然后看一下索引 comments fo
  • Nginx+Keepalived双机热备(主主模式)

    Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案 可以利用其来避免IP单点故障 类似的工具还有heartbeat corosync pacemaker 但是它一般不会单独出现 而是与其它负载均衡技术
  • Mybatis 返回对象中包含 List集合

    遇到这种情况的实体类 需要在mapper xml文件里使用 resultMap标签以及其他子标签 先贴代码 实体类 UserEntity类 private Long id 用户id private String username 用户名 p
  • http请求忽略证书、单向认证、双向认证、连接池范例(httpclient 4.3.x以上版本)

    目录 加载证书单向认证 忽略证书 双向认证 连接池 加载证书单向认证 import org apache http HttpEntity import org apache http client methods CloseableHttp
  • 数据库小白入门最简易版

    一 数据库是什么 数据库的基本概念 1 数据 data 定义 描述事物的符号记录称为数据 不严格的说就是我们平时接触到的一切可视化信息 数据的集合构成了表 表的集合构成了数据库 2 数据库 DB DataBase 定义 是存放数据的仓库 这
  • Linux蓝牙系统(3) Linux 命令

    Linux蓝牙系统 3 Linux 命令 2010 09 27 10 45 44 分类 LINUX Andrew Haung bluedrum 163 com 一 Linux对于蓝牙的支持 参见如下协议图 在HCI界面之上需要软件来实现 1
  • ctf.show web6 sql注入过滤了空格

    ctf show web6 sql注入过滤了空格 开始的页面 是一个登录的页面 随便输入用户名和密码 没有报错之类的 就把账户名和密码都清空了 那就来burpsuit抓包 先用个万能密码 or 1 1
  • 加密 scrapy

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