一分钟教会你如何使用Crypto模块RSA非对称加密,把重要的数据进行加密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 随着互联网的迅速发展,信息安全变得尤为重要。数据加密是一个必不可少的环节。有时候,我们一不留神,可能数据就被人窃听到。今天跟大家分享一个数据加密的小案例。

随着互联网的迅速发展,信息安全变得尤为重要。数据加密是一个必不可少的环节。有时候,我们一不留神,可能数据就被人窃听到。今天跟大家分享一个数据加密的小案例。

今天我们将会用到pycrypto模块,该模块支持的加密方式如下:
1、对称加密方式

  • AES
  • DES
  • ARC4

2、散列值计算:

  • MD5
  • SHA
  • HMAC

3、公钥加密和签名:

  • RSA
  • DSA

使用之前先安装扩展包,执行如下命令

pip install pycrypto

下面通过过一个小案例,简单介绍pycrypto这个库的使用。

from Crypto import Random
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
from Crypto.PublicKey import RSA
import base64


basedir = os.path.abspath(os.path.dirname(__file__))
def create_rsa_key():

    rsa = RSA.generate(1024)
    #生成密钥对
    private_pem = rsa.exportKey()
    with open('private.pem', 'wb') as f:
        f.write(private_pem)

    public_pem = rsa.publickey().exportKey()
    with open('public.pem', 'wb') as f:
        f.write(public_pem) 

#加密函数
def encrypt(message):
    with open(os.path.join(basedir,'public.pem')) as f:
        key = f.read()
        rsakey = RSA.importKey(str(key))
        cipher = Cipher_pkcs1_v1_5.new(rsakey)
        cipher_text = base64.b64encode(cipher.encrypt(bytes(message.encode("utf8"))))
        return cipher_text

#解密函数
def decrypt(cipher_text):
    random_generator = Random.new().read
    with open(os.path.join(basedir,'private.pem')) as f:
        key = f.read()
        rsakey = RSA.importKey(key)
        cipher = Cipher_pkcs1_v1_5.new(rsakey)
        text = cipher.decrypt(base64.b64decode(cipher_text), random_generator)
        return str(text,"utf-8")

if __name__ == "__main__":
    cipher_text= encrypt('nomore532')
    print(cipher_text)
    print(decrypt(cipher_text=cipher_text))
目录
相关文章
|
4月前
|
存储 安全 数据安全/隐私保护
Codota的数据加密技术包括静态数据加密和传输中的数据加密
Codota的数据加密技术包括静态数据加密和传输中的数据加密
81 4
|
4月前
|
安全 数据库 数据安全/隐私保护
对称加密与非对称加密的区别
对称加密与非对称加密的区别
239 64
|
5月前
|
数据安全/隐私保护 Python
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
如何使用Python的zipfile模块生成密码表并尝试暴力破解加密的ZIP压缩文件。
84 1
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
|
3月前
|
Java 数据安全/隐私保护
对称加密、非对称加密、哈希摘要
对称加密使用同一密钥进行加解密,速度快但需保密;非对称加密采用公钥加密、私钥解密,公钥可公开,安全性高但速度较慢,双向通信需双方各持一对密钥;哈希摘要是从数据中提取特征,用于数据完整性校验,不同数据的哈希值几乎不会相同。
56 0
|
5月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
342 1
|
5月前
|
算法 安全 网络安全
使用 Python 实现 RSA 加密
使用 Python 实现 RSA 加密
180 2
|
5月前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
154 0
|
5月前
|
安全 网络协议 网络安全
【HTTPS】对称加密和非对称加密
【HTTPS】对称加密和非对称加密
62 0
|
8天前
|
云安全 安全 数据建模
《数字证书:互联网世界的"身份证"与"防盗门"》 ——揭秘网络安全背后的加密江湖
在2023年某深夜,上海陆家嘴金融公司机房遭遇黑客攻击,神秘青铜大门与九大掌门封印的玉牌突现,阻止了入侵。此门象征数字证书,保障网络安全。数字证书如验钞机识别假币,保护用户数据。它通过SSL/TLS加密、CA认证和非对称加密,构建安全通信。证书分为DV、OV、EV三类,分别适合不同场景。忽视证书安全可能导致巨额损失。阿里云提供一站式证书服务,助力企业部署SSL证书,迎接未来量子计算和物联网挑战。
|
3月前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密

热门文章

最新文章