Python如何玩转加密?


Python支持加密的方式非常多 。有许多现成的库和模块可以使用 。下面我简单介绍几种常见的加密方式 。感兴趣的朋友可以自己尝试一下 。实验环境win10+python3.6 。主要内容如下:
MD5加密
这是一种使用非常广泛的加密方式 。不可逆的 。在日常字符串加密中经常会用到 。下面我简单介绍一下这种方式 。主要用到Python自带的模块hashlib 。测试代码如下 。先创建一个md5对象 。然后直接加密就行:

Python如何玩转加密?

文章插图
程序运行截图如下 。已经成功进行md5加密:
Python如何玩转加密?

文章插图
哈希加密
这里以SHA1(安全哈希)为例 。简单介绍一下Python是如何进行哈希加密的 。也用到hashlib这个模块 。测试代码如下 。非常简单 。先创建sha1对象 。然后直接加密就行 。这里也支持 SHA224 。SHA256等加密方式:
Python如何玩转加密?

文章插图
程序运行截图如下 。已经成功进行SHA1加密:
Python如何玩转加密?

文章插图
DES加密
这是一个分组加密算法 。解密和加密是同一个算法 。下面我简单介绍一下这种方式 。主要用到pycryptodome这个模块 。windows平台安装的话 。直接在cmd窗口输入安装命令“pip install pycryptodomex”就行 。测试代码如下 。需要单独定义一个密钥:
Python如何玩转加密?

文章插图
程序运行截图如下 。已经成功进行DES加密和解密:
Python如何玩转加密?

文章插图
AES加密
这也是一种广泛使用的加密方法 。是对DES的改进和替代 。下面我简单介绍一下这种方式 。也用到pycryptodome这个模块 。测试代码如下 。稍微有些复杂:
Python如何玩转加密?

文章插图
程序运行截图如下 。已经成功进行AES加密解密:
Python如何玩转加密?

文章插图
RSA加密
这是一种非对称加密算法 。在公开密钥加密和电子商业中经常会用到 。下面我简单介绍一下这种方式 。主要用到rsa这个模块 。安装的话 。直接在cmd窗口输入安装命令“pip install rsa”就行 。测试代码如下 。需要单独定义一个公钥和私钥:
Python如何玩转加密?

文章插图
程序运行截图如下 。已经成功进行rsa加密和解密:
Python如何玩转加密?

文章插图
至此 。我们就完成了利用Python来进行加密 。总的来说 。整个过程不难 。有现成的模块可以直接使用 。只要你有一定的Python基础 。熟悉一下上面的代码和示例 。很快就能掌握的 。当然 。你也可以自己来实现加密算法 。不过需要一定的数学基础 。感兴趣的话 。可以到网上搜一下相关教程 。介绍的非常详细 。希望以上分享的内容能对你有所帮助吧 。也欢迎大家评论、留言进行补充 。
其他观点:
一、生成公钥、私钥对
使用openssl工具生成RSA公钥、私钥对 。
1.下载openssl工具 。下载地址
2.打开 openssl 文件夹下的 bin 文件夹 。执行 openssl.exe 文件;
3.生成RSA私钥命令:
这里生成的密钥文件是2048比特 。
genrsa -out rsa_private_key.pem 2048
4.生成RSA公钥命令:
注意 。公钥和私钥是成对的 。所以你在生成一个后 。另一个的生成是基于前一个的文件名 。否则生成的不是一对哦!!
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
生成后的文件应该在你的用户目录下 。或者在openssl的bin文件夹下(有时候在有时又不在 。真是搞不懂 。反正你就在这两个地方都找一下 。肯定在的) 。
5.这里介绍一下RSA密钥文件的规律 。文件名都是以.pem为后缀 。生成的RSA密钥 。可以看到都是
以-----BEGIN RSA PRIVATE KEY-----开头 。-----END RSA PRIVATE KEY-----结尾的没有换行的字符串 。这个就是原始的 RSA 私钥 。
二、安装python支持的加密库—pycryptodome
我用的python3.6版本 。网上搜了一下 。在python3.6之前的版本大部分是用pycrypto来进行加密的 。而在python3.6之后 。因无人维护pycrypto 。所以改名为pycryptodome 。这个库的强大之处在于 。他是pycrypto库的扩展 。用起来更加方便 。更灵活啊~~功能杠杠滴

推荐阅读