python密码学RSA密码加密教程
作者:菜鸟教程 发布时间:2023-08-03 17:09:10
标签:python,密码学,RSA,加密
在本章中,我们将重点介绍RSA密码加密的不同实现及其所涉及的功能.您可以引用或包含此python文件以实现RSA密码算法实现.
加密算法模块
加密算法包含的模块如下
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA512, SHA384, SHA256, SHA, MD5
from Crypto import Random
from base64 import b64encode, b64decode
hash = "SHA-256"
哈希值初始化
为了更好的安全性,我们将哈希值初始化为SHA-256.我们将使用函数生成新密钥或一对公钥和私钥.
使用以下代码.
def newkeys(keysize):
random_generator = Random.new().read
key = RSA.generate(keysize, random_generator)
private, public = key, key.publickey()
return public, private
def importKey(externKey):
return RSA.importKey(externKey)
函数algorithm
对于加密,在RSA之后使用以下函数algorithm:
def encrypt(message, pub_key):
cipher = PKCS1_OAEP.new(pub_key)
return cipher.encrypt(message)
两个参数是必需的:消息和 pub_key ,它指的是公钥.公钥用于加密,私钥用于解密.
加密程序的完整代码
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA512, SHA384, SHA256, SHA, MD5
from Crypto import Random
from base64 import b64encode, b64decode
hash = "SHA-256"
def newkeys(keysize):
random_generator = Random.new().read
key = RSA.generate(keysize, random_generator)
private, public = key, key.publickey()
return public, private
def importKey(externKey):
return RSA.importKey(externKey)
def getpublickey(priv_key):
return priv_key.publickey()
def encrypt(message, pub_key):
cipher = PKCS1_OAEP.new(pub_key)
return cipher.encrypt(message)
来源:https://www.it1352.com/OnLineTutorial/cryptography_with_python/cryptography_with_python_rsa_cipher_encryption.html


猜你喜欢
- Python字典的创建方法一:>>> blank_dict = {}>>> product_dict =
- Python序列化的概念很简单。内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人。你会怎么做?这取决于你想要怎么保存,怎么
- 一、mysqlcheck简介mysqlcheck客户端可以检查和修复MyISAM表。它还可以优化和分析表。mysqlcheck的功能类似my
- 异常异常处理…允许错误处理在程序结构的中心或者高层级的地方被清晰有条理的组织起来。Exceptions… allow error handl
- 前言在两种python循环语句的使用中,不仅仅是循环条件达到才能跳出循环体。所以,在对python函数进行阐述之前,先对跳出循环的简单语句块
- 项目简介之前学python的时候 写了个游戏来练手 用的是 pygame 没有别的依赖只用了一两百行的代码就实现了 整体来说功能并不算完整项
- 最近在做周报的时候,需要把csv文本中的数据提取出来制作表格后生产图表。在获取csv文本内容的时候,基本上都是用with open(file
- 如下所示:年月日时分秒>>> print datetime.datetime.now().strftime("%
- ddt 是第三方模块,需安装, pip install ddtDDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据)通常情况
- 1. 事务的 ACID 特性详ACID 是为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(Atomicity
- 点乘和矩阵乘的区别: 1)点乘(即“ * ”) ---- 各个矩阵对应元素做乘法若 w 为 m*1 的矩阵,x
- sql语句有一个非常长的sql,用编辑器打开编写的时候太长了导致编写非常吃力,而且容易错乱,我想做的是把A,B,C三个变量赋值到sql中的字
- 导入Git项目 新建项目File–>New–>Project from Version Control–>Git从Git
- 1,file_put_contents()函数 2,使用PHP内置缓存机制实现页面静态化:output_bufferingphp中outpu
- python进行矩阵运算的方法:1、矩阵相乘>>>a1=mat([1,2]); >>>a2
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️图像梯度概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天
- 本文实例讲述了Python函数基础用法。分享给大家供大家参考,具体如下:一、什么是命名关键字参数?格式: 在*后面参数都是命名关键字参数。特
- 首先给大家分享一个个人在使用python的ctypes调用c库的时候遇到的一个小坑这次出问题的地方是一个C函数,返回值是malloc生成的字
- 在Web上使用菜单可以极大地节约页面的空间,同时也比较的符合用户从Windows上继承下来的UI操作体验。在以往的Web页菜单设计中,我们普
- 本文实例讲述了Python3实现的Mysql数据库操作封装类。分享给大家供大家参考,具体如下:#encoding:utf-8#name:mo