python对称和非对称密码怎么实现

发布时间:2022-05-24 17:10:49 作者:iii
来源:亿速云 阅读:209

这篇文章主要讲解了“python对称和非对称密码怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python对称和非对称密码怎么实现”吧!

对称密码术

在此类型中,加密和解密进程使用相同的密钥.它也被称为秘密密钥加密.对称加密的主要特征如下:

缺点

对称密码术的主要缺点是如果密钥泄漏给入侵者,则可以轻松更改消息,这被视为风险因素.

数据加密标准(DES)

最流行的对称密钥算法是数据加密标准(DES),Python包含一个包含DES算法背后的逻辑的包.

安装

在Python中安装DES包 pyDES 的命令是 :

pip install pyDES

python对称和非对称密码怎么实现

DES算法的简单程序实现如下<

import pyDes
data = "DES Algorithm Implementation"
k = pyDes.des("DESCRYPT", pyDes.CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=pyDes.PAD_PKCS5)
d = k.encrypt(data)
print "Encrypted: %r" % d
print "Decrypted: %r" % k.decrypt(d)
assert k.decrypt(d) == data

它调用变量 padmode ,它根据DES算法实现提取所有包,并以指定的方式进行加密和解密.

输出

您可以看到以下输出作为上面和下面给出的代码的结果;

python对称和非对称密码怎么实现

非对称加密

它也被称为公钥加密.它以对称加密的相反方式工作.这意味着它需要两个密钥:一个用于加密,另一个用于解密.公钥用于加密,私钥用于解密.

缺点

以下Python中的程序代码说明了使用RSA算法进行非对称加密的工作及其实现 :

from Crypto import Random
from Crypto.PublicKey import RSA
import base64
def generate_keys():
   # key length must be a multiple of 256 and >= 1024
   modulus_length = 256*4
   privatekey = RSA.generate(modulus_length, Random.new().read)
   publickey = privatekey.publickey()
   return privatekey, publickey
def encrypt_message(a_message , publickey):
   encrypted_msg = publickey.encrypt(a_message, 32)[0]
   encoded_encrypted_msg = base64.b64encode(encrypted_msg)
   return encoded_encrypted_msg
def decrypt_message(encoded_encrypted_msg, privatekey):
   decoded_encrypted_msg = base64.b64decode(encoded_encrypted_msg)
   decoded_decrypted_msg = privatekey.decrypt(decoded_encrypted_msg)
   return decoded_decrypted_msg
a_message = "This is the illustration of RSA algorithm of asymmetric cryptography"
privatekey , publickey = generate_keys()
encrypted_msg = encrypt_message(a_message , publickey)
decrypted_msg = decrypt_message(encrypted_msg, privatekey)
print "%s - (%d)" % (privatekey.exportKey() , len(privatekey.exportKey()))
print "%s - (%d)" % (publickey.exportKey() , len(publickey.exportKey()))
print " Original content: %s - (%d)" % (a_message, len(a_message))
print "Encrypted message: %s - (%d)" % (encrypted_msg, len(encrypted_msg))
print "Decrypted message: %s - (%d)" % (decrypted_msg, len(decrypted_msg))

输出

你可以找到执行上面给出的代码时减去输出;

python对称和非对称密码怎么实现

感谢各位的阅读,以上就是“python对称和非对称密码怎么实现”的内容了,经过本文的学习后,相信大家对python对称和非对称密码怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 对称密码、非对称密码、散列算法与PKI
  2. 对称密钥与非对称密钥算法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:jquery如何绑定点击事件实现弹窗

下一篇:微信小程序如何实现照片裁剪

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》