编码与加密基础笔记

news2024/11/15 12:19:55

文章目录

  • 👉1、ASCII 编码
  • 👉2、了解Base64
  • 👉3、MD5消息摘要算法
  • 👉4、对称加密与 AES
  • 👉5、非对称加密与 RSA

在这里插入图片描述

参考书籍《Python 3 反爬虫原理与绕过实战》

👉1、ASCII 编码

ASCII编码实际上约定了字符串二进制的映射关系。
在这里插入图片描述

👉2、了解Base64

简单来讲Base64就是用64个可打印字符来表示8位二进制数据。’=‘ 只是为了补全编码后的字符数为4的整数

A-Z
a-z
0-9
+
/

它是网络中常见的编码方式,它的出现是为了解决不可打印的字符在网络传输过程中造成的乱码现象。Base64编码时所用的对照表是固定的,它的编码过程是可逆的。伪加密。
例子:

"""
CSDN: 抄代码抄错的小牛马
"""
import base64

s = "你好"

encrypt = base64.b64encode(s.encode('utf-8'))
print("加密的结果:", encrypt)

# 解密
decrypt = base64.b64decode(encrypt).decode("utf-8")

print("解密的结果:", decrypt)

在这里插入图片描述

👉3、MD5消息摘要算法

MD5 消息摘要算法是一种被广泛使用的散列函数,MD5 不可逆。它被广泛的应用于密码存储、检验信息等场景。
例子:

"""
CSDN: 抄代码抄错的小牛马
"""
import hashlib

data = "你好吗"
md5Data = hashlib.md5(data.encode('utf-8')).hexdigest()

print(md5Data)

# 7c62edd327b79f9b44c5142675e39d0b

👉4、对称加密与 AES

加密和解密时使用同一个密钥的方式叫对称加密,使用不同密钥的是非对称加密,相对于非对称加密来说,对称加密的速度更快,速度的优势使得它更适合大量数据加密的场景。
Python中的AES加密
python实现AES加密、解密
大概格式:


# 加密
def getAesString(data, key0, iv0):
    data = pad(data)

    key = key0.encode('utf-8')
    mode = AES.MODE_CBC
    iv = iv0

    print('key1', key)
    print('mode', mode)
    print('i_v', iv.encode("utf-8"))
    print('============================')

    print(len(data))
    # 创建加密对
    AES_obj = AES.new(key, mode, iv.encode("utf-8"))
    # 完成加密
    AES_en_str = AES_obj.encrypt(data.encode("utf-8"))
    # 用base64编码
    AES_en_str = base64.b64encode(AES_en_str)
    # 最后将密文转化成字符串
    AES_en_str = AES_en_str.decode("utf-8")

    return AES_en_str

    pass

👉5、非对称加密与 RSA

这种加密方式需要用到两个密钥:公钥私钥。 公钥与密钥是一对的,如果用该公钥对数据进行加密,那么只有用对应的私钥才能够完成解密数据。反之即可。在非对称加密算法中,应用最广泛、强度最高的是RSA算法。
python中rsa非对称算法(包含分段加解密分析)
RSA非对称加密解密、签名验签
解密:在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中使用matplotlib时显示中文乱码_(或更改字体)

一、问题描述 在使用matplotlib绘制可视化图表时,图表的中文显示乱码,只能正常显示英文内容,如下图所示: 二、问题分析 一般显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pypl…

全语言通用的ASCIL表讲解,这一篇就够了

目录 ASCII码诞生背景 ASCII码特性 可显示字符 大佬们可以看这个 小白们看这个更详细 对控制字符的解释 ASCII码诞生背景 在计算机中,所有的数据在存储和运算时都要使用二进制表示。例如,像a、b、c、d这样的52个字母(包括大写&#xf…

Winnolin 绘制药时曲线图C-T

文章目录前言一、各受试者C-T图1.导入数据2.设置-运行2.查看结果,修改参数二、各制剂C-T图1.导入数据2.设置-运行2.查看结果,修改参数三、平均C-T图1.计算统计量2.设置统计量计算参数(Set Up)3.绘图XY Plot4.查看结果,…

Java多线程基础面试总结(三)

线程的生命周期和状态 Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态: NEW:初始状态,线程被创建出来,但是还没有调用start()方法。RUNABLE:运行中状态,调用了start()…

Java设计模式 11-代理模式

代理模式 一、 代理模式(Proxy) 1、代理模式的基本介绍 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是: 可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象…

时间序列的平稳性

如何检查时间序列是否平稳,如果它是非平稳的,我们可以怎么处理 当未来的数据与现在相似时,它更容易建模。平稳性描述了时间序列的统计特征不随时间变化的概念。因此一些时间序列预测模型,如自回归模型,依赖于时间序列…

IoC 之 Spring 统一资源加载策略【Spring源码】

《JavaPub源码》 文末是系列文章 IoC 之 Spring 统一资源加载策略 Spring 框架的核心是 IoC(Inversion of Control),它将应用程序的对象依赖关系管理和控制反转到容器中。在 Spring IoC 容器中,组件的创建和配置是通过外部配置…

IDEA 运行启动 pulsar-manager项目

IDEA 运行 pulsar-manager项目(gradle) 1、下载pulsar-manager源码 giithub地址 smn-manager 2、将项目导入IDEA并初始化项目 问题:SSL peer shut down incorrectly 将https改成http之后又会出现 Server returned HTTP response code: …

服务(第四篇)Apache的网页优化

一、网页压缩 ①首先检查是否安装 mod_deflate 模块 ②如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块 yum -y install gcc gcc-c pcre pcre-devel zlib-devel cd /opt/httpd-2.4.29/ ./configure \ --prefix/usr/local/httpd \ --enabl…

HDFS学习笔记 【Namenode/DN管理】

说明 DN管理管理了什么? NN上如何表示DN DN存储和块的关系 梳理DatanodeManager存储类 DatanodeDescriptor DN的抽象,依次继承。每一层增加一点额外的信息。 DatanodeId 基本的DN信息,hostname,数据传输接口,info服…

QTableView 设置selection-background-color和border不同时生效问题记录

问题: qtableview在使用过程种设置qss样式,设置选中时的背景色,以及边框颜色,不能同时生效。 解决: 在qss中设置QTableView的样式时,对于item项,selection-background-color的参数设置应该分…

在将公司“一拆六”后,阿里巴巴未来将释放出哪些投资价值?

来源:猛兽财经 作者:猛兽财经 阿里巴巴为何要将公司拆分为六大业务集团 3月28日,阿里巴巴集团董事会主席兼首席执行官张勇发布全员信,宣布启动“16N”组织变革,将公司拆分为六大业务集团和多家业务分公司。 在阿里巴巴…

关于FPGA(Vivado)后仿真相关问题的探讨

FPGA后仿真时,相比于功能仿真增加了门延时和布线延时,相对于门级仿真增加了布线延时,因此后仿真相比于功能仿真具有不同的特点。 下面所示的代码在功能仿真时是正确的的,但在后仿真时,似乎是有问题的。功能很简…

大数据项目组-月度考核汇报0102

目录 01-2023年02月-月度考核汇报 2月份完成项目情况 2月份学习情况 3月份学习计划 老师点评 02-2023年03月-月度考核汇报 项目完成情况 本月学习内容 下月学习计划 老师点评 01-2023年02月-月度考核汇报 2月份完成项目情况 MySQL数据同步到ElasticSearch任务进展&a…

linux shell 操作二进制文件(xxd、dd)

1&#xff0c;生成一个二进制文件 dd 工具 # 全零 二进制文件 dd if/dev/zero of1.bin bs1 count1024#全0xff tr \000 \377 < /dev/zero | dd ofall_0xff.bin bs1 count1024 > /dev/null xxd 工具&#xff1a;只能改单个地址 # echo "0x123" | xxd -r – xx…

【华为od2023-C++版】字符串重新排列、字符串重新排序

华为od机试题C2023个人练习使用 字符串重新排列、字符串重新排序 题目描述 给定一个字符串s&#xff0c;s包括以空格分隔的若干个单词&#xff0c;请对s进行如下处理后输出:1、单词内部调整:对每个单词字母重新按字典序排序Q 2、单词间顺序调整: 1)统计每个单词出现的次数&a…

算法刷题日志

今天是星期几就加上多少天在最后 public class Main {public static void main(String[] args) {System.out.println(Math.pow(20, 22) % 7 6);} }这题是判断左右回文&#xff0c;且要保持单调性&#xff0c;因为回文数左右对称所以只需要判断左边是否单调递增。 public class…

模拟信号隔离放大器变送器 导轨安装DIN11 IPO EM系列

概述&#xff1a; 导轨安装DIN11 IPO EM系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要电量隔离测控的行业。该模块内部嵌入了一个高效微功率的电源&#xff0…

yolov5详解与改进

https://github.com/z1069614715/objectdetection_script YOLOV5改进-Optimal Transport Assignment Optimal Transport Assignment&#xff08;OTA&#xff09;是YOLOv5中的一个改进&#xff0c;它是一种更优的目标检测框架&#xff0c;可以在保证检测精度的同时&#xff0c…

研究的艺术 (The craft of research) 读书笔记

前言 如果你对这篇文章感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 对于研究者而言&#xff0c;写作是一件很重要的事&#xff0c;好的写作不仅能让更多人愿意读&#xff0c;获得更大影响力&…