在本章中,我们将重点介绍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)
以上就是python密码学RSA密码加密教程的详细内容,更多关于python密码学RSA加密的资料请关注其它相关文章!
查看更多关于python密码学RSA密码加密教程的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did17038