一分钟教会你如何使用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))
目录
相关文章
|
2月前
|
存储 安全 数据安全/隐私保护
Codota的数据加密技术包括静态数据加密和传输中的数据加密
Codota的数据加密技术包括静态数据加密和传输中的数据加密
58 4
|
2月前
|
算法 安全 数据安全/隐私保护
Crypto++库支持多种加密算法
【10月更文挑战第29天】Crypto++库支持多种加密算法
107 4
|
2月前
|
安全 数据库 数据安全/隐私保护
对称加密与非对称加密的区别
对称加密与非对称加密的区别
203 64
|
1月前
|
Java 数据安全/隐私保护
对称加密、非对称加密、哈希摘要
对称加密使用同一密钥进行加解密,速度快但需保密;非对称加密采用公钥加密、私钥解密,公钥可公开,安全性高但速度较慢,双向通信需双方各持一对密钥;哈希摘要是从数据中提取特征,用于数据完整性校验,不同数据的哈希值几乎不会相同。
33 0
|
2月前
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
791 3
|
3月前
|
数据安全/隐私保护 Python
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
如何使用Python的zipfile模块生成密码表并尝试暴力破解加密的ZIP压缩文件。
53 1
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
|
2月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
3月前
|
算法 安全 数据安全/隐私保护
加密和解密数据
【10月更文挑战第6天】加密和解密数据
75 2
|
3月前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
102 0
|
11天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密