pyhton3 rsa长加密/解密
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
from Crypto.PublicKey import RSA
import base64
'''
单次加密串的长度最大为(key_size/8 - 11)
加密的 plaintext 最大长度是 证书key位数/8 - 11, 例如1024 bit的证书,被加密的串最长 1024/8 - 11=117,
解决办法是 分块 加密,然后分块解密就行了,
因为 证书key固定的情况下,加密出来的串长度是固定的。
'''
def rsa_long_encrypt(pub_key_str, msg):
msg = msg.encode('utf-8')
length = len(msg)
default_length = 117
#公钥加密
pubobj = Cipher_pkcs1_v1_5.new(RSA.importKey(pub_key_str))
#长度不用分段
if length < default_length:
return base64.b64encode(pubobj.encrypt(msg))
#需要分段
offset = 0
res = []
while length - offset > 0:
if length - offset > default_length:
res.append(pubobj.encrypt(msg[offset:offset+default_length]))
else:
res.append(pubobj.encrypt(msg[offset:]))
offset += default_length
byte_data = b''.join(res)
return base64.b64encode(byte_data)
def rsa_long_decrypt(priv_key_str, msg):
msg = base64.b64decode(msg)
length = len(msg)
default_length = 128
#私钥解密
priobj = Cipher_pkcs1_v1_5.new(RSA.importKey(priv_key_str))
#长度不用分段
if length < default_length:
return b''.join(priobj.decrypt(msg, b'xyz'))
#需要分段
offset = 0
res = []
while length - offset > 0:
if length - offset > default_length:
res.append(priobj.decrypt(msg[offset:offset+default_length], b'xyz'))
else:
res.append(priobj.decrypt(msg[offset:], b'xyz'))
offset += default_length
return b''.join(res)
pyhton3 rsa长加密/解密相关推荐
- 加密解密_使用RSA密钥对加密解密数据
使用RSA密钥对加密解密数据 作者: 郭政鸿 2021/1/6 前言: 前几天看了非对称加密, 那非对称加密处理常见的https中的应用, 平时我们可以用来做什么呢? 1. 生成RSA密钥对 使用op ...
- java rsa 117_java实现RSA非对称加密解密
之前写过一篇java实现AES对称加密解密 在对密码加密传输的场景下 RSA非对称加密解密可能会更加适合. 原理就是后台生成一对公钥和私钥,公钥给前端用来加密,后台用私钥去解密,保证了传输过程中就算被 ...
- RSA分段加密/解密 nodejs 和java联调
RSA分段加密/解密 nodejs 和java联调 文章目录 RSA分段加密/解密 nodejs 和java联调 1 nodejs 环境 1.1 axios配置 1.2 API接口 1.3 业务 1. ...
- RSA算法加密解密举例
RSA算法加密解密举例 使用如下数字字母对照表: 明文M="its all greek to me" ,p=47,q=59,e=17,求出其密文以及给出RSA 算法加/解密过程.( ...
- CryptoAPI与openssl RSA非对称加密解密(PKCS1 PADDING)交互
(以下代码中都只做测试用,有些地方没有释放内存...这个自己解决下) 1.RSA非对称的,首先提供一个供测试用的证书和私钥的数据 1)pem格式的证书和私钥(公私钥是对应的)的base64编码 [cp ...
- java rsa 文件加密解密_RSA 加密、解密(自己生成加密解密文件)
本文是自己阅读了网上的高人们的文章之后,实现功能后总结出来的,方便自己方便他人,不喜勿喷 加密解密需要生成公钥.私钥文件步骤 1.打开终端 输入 openssl 5F88AA4A-3913-4CBC- ...
- RSA非对称加密解密概念
1.RSA加密解密在线计算网站 网站1:https://www.bejson.com/enc/rsa/ 网站2:https://the-x.cn/cryptography/Rsa.aspx 2.PKC ...
- Java实现RSA分段加密解密
本文完成的是公钥加密,私钥解密(私钥加密公钥解密是一样的). 注意点: 秘钥生成的格式不同,使用算法也不同,公钥是X509EncodedKeySpec,私钥是PKCS8EncodedKeySpec. ...
- Java使用RSA进行加密解密【完美版本】;Data must not be longer than 117 bytes【不报此错误】
Java使用RSA的公钥加密,私钥解密:私钥加密,公钥解密 import org.apache.commons.codec.binary.Base64; import org.slf4j.Logger ...
最新文章
- Android Wifi 主动扫描 被动扫描
- Material Design之ActionBar、ToolBar
- Educational Codeforces Round 2 B. Queries about less or equal elements
- 运营商线路细分_呼叫中心各种线路的区分
- 如何接地气地接入微前端?
- 基于水色图像的水质评价
- 一个免费调用的OData服务,无需用户名密码,适用于SAP UI5的学习
- junit5和junit4_JUnit 5符合AssertJ
- 使用线程——创建线程
- 关于js函数未定义not defined引发的感想
- 2020年中国网络安全市场全景图
- vagrant开启Xshell使用密码登录方式
- 谈谈文本匹配和多轮检索
- linux系统的磁盘挂载情况
- Java入门教程——下载JAVA
- MSN Message协议分析
- spss基本总结——聚类分析
- 服务器ssl证书在哪查看,https证书查看
- 选择与循环:剪刀石头布_剪刀石头布十大奢侈家具,创造高端精致生活就是这么简单!...
- Office系列---将Office文件(Word、PPT、Excel)转换为PDF文件,提取Office文件(Word、PPT)中的所有图片
热门文章
- 如何用手机打开dcm格式图片_手机也能当扫描仪用?如何用手机扫描图片?
- html渐变不兼容,CSS3实现文字渐变效果,兼容性最强系列!
- wps android qq 群,手机WPS怎样发送文档给QQ?WPS怎样发送文档给QQ教程
- python中with类的_在Python中使用`with`的不同类
- linux深度定制,专为国人订制!Linux Deepin新版发布
- 转载 mysql 数据库优化配置实例
- 【机器学习入门到精通系列】大规模机器学习图示
- python【Matlibplot绘图库】-主要概念
- 博途v15安装过程中提示出错_博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
- opcache php 原理_php之Opcache