当前位置: 首页 > article >正文

Python的加密与解密,你知道几类?

人生苦短,我用python

在这里插入图片描述

python 安装包+资料:点击此处跳转文末名片获取

据记载,
公元前400年,
古希腊人发明了置换密码。
1881年世界上的第一个电话

保密专利出现。
在第二次世界大战期间,
德国军方启用“恩尼格玛”密码机,

密码学在战争中起着非常重要的作用。

随着信息化和数字化社会的发展,
人们对信息安全和保密的重要性认识不断提高,

于是在1997年,
美国国家标准局公布实施了“美国数据加密标准(DES)”,

民间力量开始全面介入密码学的研究和应用中,
采用的加密算法有DES、RSA、SHA等。

随着对加密强度需求的不断提高,
近期又出现了AES、ECC等。

在这里插入图片描述

使用密码学可以达到以下目的:

  • 保密性:防止用户的标识或数据被读取。

  • 数据完整性:防止数据被更改。

  • 身份验证:确保数据发自特定的一方。

加密算法分类

对称加密算法:

对称加密采用了对称密码编码技术,
它的特点是文件加密和解密使用相同的密钥

发送方和接收方需要持有同一把密钥,
发送消息和接收消息均使用该密钥。

相对于非对称加密,
对称加密具有更高的加解密速度,
但双方都需要事先知道密钥,
密钥在传输过程中可能会被窃取,
因此安全性没有非对称加密高。

常见的对称加密算法:DES,AES,3DES等等

非对称加密算法:

文件加密需要公开密钥(publickey)和私有密钥(privatekey)

接收方在发送消息前需要事先生成公钥和私钥,
然后将公钥发送给发送方。
发送放收到公钥后,
将待发送数据用公钥加密,
发送给接收方。
接收到收到数据后,用私钥解密。

在这个过程中,公钥负责加密,
私钥负责解密,数据在传输过程中即使被截获,
攻击者由于没有私钥,因此也无法破解。

非对称加密算法的加解密速度低于对称加密算法,

但是安全性更高。

非对称加密算法:RSA、DSA、ECC等算法

消息摘要算法:

消息摘要算法可以验证信息是否被篡改。

在数据发送前,
首先使用消息摘要算法生成该数据的签名,
然后签名和数据一同发送给接收者。

接收者收到数据后,
对收到的数据采用消息摘要算法获得签名,
最后比较签名是否一致,
以此来判断数据在传输过程中是否发生修改。

Python加密库

PyCrypto是 Python 中密码学方面最有名的第三方软件包。
可惜的是,
它的开发工作于2012年就已停止。

其他人还在继续发布最新版本的 PyCrypto,
如果你不介意使用第三方的二进制包,
仍可以取得Python 3.5 的相应版本。

比如,
可以在 Github 上找到了对应Python3.5的PyCrypto 二进制包。

幸运的是,
有一个该项目的分支PyCrytodome 取代了 PyCrypto 。
为了在 Linux 上安装它,

你可以使用以下pip 命令:

pip3 install -ihttps://pypi.douban.com/simplepycryptodome

在Windows 系统上安装则稍有不同:

pip3 install -ihttps://pypi.douban.com/simplepycryptodomex

在这里插入图片描述

DES加密

全称为Data EncryptionStandard,
即数据加密标准,
是一种使用密钥加密的块算法

入口参数有三个:Key、Data、Mode

Key为7个字节共56位,是DES算法的工作密钥;

Data为8个字节64位,是要被加密或被解密的数据;

Mode为DES的工作方式,有两种:加密或解密

3DES(即Triple DES)是DES向AES过渡的加密算法,

使用两个密钥,执行三次DES算法,

加密的过程是加密-解密-加密

解密的过程是解密-加密-解密

AES加密

高级加密标准(英语:Advanced EncryptionStandard,缩写:AES),这个标准用来替代原先的DES

AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特(16、24和32字节)

大致步骤如下:

1、密钥扩展(KeyExpansion),

2、初始轮(Initial Round),

3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,

4、最终轮(Final Round),最终轮没有MixColumns。

普通方式

面向对象方式

RSA加密

公钥加密算法,一种非对称密码算法

公钥加密,私钥解密

3个参数:

rsa_n, rsa_e,message

rsa_n, rsa_e 用于生成公钥

message: 需要加密的消息

安装 pip install rsa  使用

在这里插入图片描述


👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇


http://www.kler.cn/a/4558.html

相关文章:

  • 【C++进阶】右值引用和移动语义
  • echarts.js的使用方法
  • 史诗级详解面试中JVM的垃圾回收
  • Linux 日志级别
  • chatgptApi 文档使用以及 Demo演示
  • svelte + vite 开发 Web Components
  • 字节跳动软件测试岗,收到offer后我却拒绝了 给面试的人一些忠告...
  • Github上得分最高的20个项目
  • nvm常用命令切换node
  • 字节跳动软件测试岗,前两面过了,第三面被面试官吊打,结局我哭了
  • JDK 中用到了哪些设计模式?
  • 【YOLO】YOLOv5+Deep Sort 实现MOT评估(开源数据集+自定义数据集)
  • 蓝牙耳机哪个品牌便宜好用?2023年性价比高的蓝牙耳机推荐
  • UGC、PGC、OGC的概念
  • n个字符串排序(指针数组实现)
  • Python入门(4)语法、变量和标识符、数据类型、字符串、布尔值、类型检查、对象、类型转换、运算符
  • FPGA可以转IC设计吗?需要学习哪些技能?
  • spring常用注解
  • Python Flask框架学习笔记16
  • 这16个性能测试工具,测试人用了都说好!