python利用公私钥加解密
小贴士
这里不再赘述公私钥的生成过程。可以利用OpenSSL进行生成。
加密代码
#!/usr/bin/python
#加密
#conda install pycrypto #提前安装模块
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
publickey = RSA.importKey(open('public_key.pem').read())
enc = PKCS1_v1_5.new(publickey)
ciphertext = enc.encrypt("3160610019") #加密字符串
with open("crypt.txt", 'w') as f: #加密后保存在此文件中
f.write(base64.encodestring(ciphertext))
解密代码
#!/usr/bin/python
from Crypto import Random
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
key = RSA.importKey(open('server.key').read())
dec = PKCS1_v1_5.new(key)
with open('crypt.txt', 'r') as f: #读取密文
ciphertext = f.read()
ciphertext = base64.decodestring(ciphertext)
print dec.decrypt(ciphertext, Random.new().read)
注意:密钥最好不要设置密码哦。
python利用公私钥加解密的更多相关文章
- Python rsa公私钥生成 rsa公钥加解密(分段加解密)-私钥加签验签实战
一般现在的SAAS服务提供现在的sdk或api对接服务都涉及到一个身份验证和数据加密的问题.一般现在普遍的做法就是配置使用非对称加密的方式来解决这个问题,你持有SAAS公司的公钥,SAAS公司持有你的 ...
- 关于Python实现Interface base64加解密方法
''' 以下Python Code运行环境为windows10, Python版本为3.5.3 涉及的库:base64,json,unittest ''' # coding=utf-8 # impor ...
- openssl操作公私钥和加解密的一些常用命令
生成公私钥实践: 生成私钥,这里以椭圆曲线secp256k1为例: openssl ecparam -name secp256k1 -genkey -out secp256k1-priv.pem #带 ...
- Python凯撒密码加解密
#凯撒密码第一个版本 #加密 pxpt=input("请输入明文文本:") for p in pxpt: if 'a'<=p<='z': print(chr(ord(' ...
- 杂项之python利用pycrypto实现RSA
杂项之python利用pycrypto实现RSA 本节内容 pycrypto模块简介 RSA的公私钥生成 RSA使用公钥加密数据 RSA使用私钥解密密文 破解博客园登陆 pycrypto模块简介 py ...
- RSA 加解密算法
与DES不同,RSA算法中,每个通信主体都有两个钥匙,一个公钥一个私钥. 就是有2把钥匙1.使用publicKey可以对数据进行加密2.使用Key才能对数据进行解密单方向传输用公钥加密的数据,只有私钥 ...
- Java实现RSA密钥对并在加解密、加签验签中应用的实例
一.项目结构 二.代码具体实现 1.密钥对生成的两种方式:一种生成公钥私文件,一种生成公钥私串 KeyPairGenUtil.java package com.wangjinxiang.genkey. ...
- python实现RSA加密和签名以及分段加解密的方案
1.前言 很多朋友在工作中,会遇到一些接口使用RSA加密和签名来处理的请求参数,那么遇到这个问题的时候,第一时间当然是找开发要加解密的方法,但是开发给加解密代码,大多数情况都是java,c++,js等 ...
- RSA加密通信小结(四)--RSA加解密的实际操作与流程小结
在上一篇文章中,我们已经将密钥的生成方法和流程,归纳总结.而本篇主要是讲如何利用密钥进行加解密. 首先,在上一篇文章中的我们生成了很多密钥,证书等等. 在上述生成的文件中,接收服务端加密报文:pkcs ...
- cryptoJS AES 加解密简单使用
简单记录一下,前端利用 cryptoJS 如何加解密的.主要是关于 AES 加解密. 需求描述:需要对 url 中的参数进行 AES 解密,然后再把该参数进行 MD5 加密通过接口传递. AES AE ...
随机推荐
- dotnet 6 为什么网络请求不跟随系统网络代理变化而动态切换代理
本文记录在 dotnet 6 的网络和在 .NET Framework 的行为的变更.在 dotnet 6 下,默认的网络请求在系统网络代理变更的时候,是不会动态切换代理的.例如在应用运行进行网络通讯 ...
- 关于QQ群炸了的说明
ABAP 7.5学习群不幸被腾讯封了,想要聊天的群友可以加以下两个群, ABAP 7.5历史研究小组 728466742 ABAP 7.5 备份群 582240105
- sql计算列中并非零值的平均值
avg不考虑空值 AVG (NULLIF(Value, 0)) NULLIF(expression, expression) 如果两个 expression 相等,则返回 NULL,该 NULL 为第 ...
- 源码安装expect
1. yum安装expect 如果有外网,可以yum安装,如下: yum install expect 2.源码安装expect 下载tcl源码包 cd /tmp &&wget htt ...
- 如何在局域网内两台电脑上进行webapi的在线调试
原文地址:https://www.zhaimaojun.top/Note/5475298(我自己的博客) 局域网内WebApi的远程调试方法: 第一步:管理员方式运行Vs并打开需要运行的项目,如果已经 ...
- Github Copilot绑定Jetbrains IDE无效的解决方案
在Github中进行教育认证后不会自动开通Copilot功能,因此,在进行了Github教育认证之后,在使用之前要进入Github Copilot官网开通Coplilot,如果忽略了这一点,绑定Jet ...
- rails 给数据库表里加入索引
创建迁移文件 rails g migration add_product_images_index 编写迁移文件 db/migrate/20170119093958_add_product_image ...
- Golang、python中MD5、SHA512、base64编码等
在GO中处理的话,比较方便. func main() { fmt.Println(md5Str("woGo")) fmt.Println(sha512Str("woGo& ...
- LVS负载均衡(1)-- LVS概述及LVS网络模型
目录 1. 负载均衡集群概述 2. LVS理论基础 2.1 LVS常用术语 2.2 LVS数据调度原理 2.3 LVS工作模型 2.3.1 NAT模型 2.3.2 DR模型 2.3.3 TUNNEL模 ...
- 回顾复习x学习笔记
从头回顾(截至搜索) #define fo(x,y,z) for(int (x)=(y);(x)<=(z);(x)++) #define foo(x,y,z) for(int (x)=(y);( ...