Python的加密与解密

论坛 期权论坛 期权     
Python多一点   2019-7-14 05:27   2840   0
Hello,大家好,今天是Python知识小课堂,小伙伴们有期待一点君的到来吗?今天咋们一起来了解下Python的加密与解密。

点击分享图片到朋友圈


密码的起源
据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。


随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。


随着对加密强度需求的不断提高,近期又出现了AES、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
使用


以上就是本期的Python小课堂了,下周同一时间再见。





码字不易
右边给我一个好看!
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:10
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP