python3.7中RSA加密遇到的问题
对于网络上有很多python3.7中RSA加密代码,一般都是生成公钥或者私钥,测试接口的时候公司一般会规定要使用的公钥,则代码就会报错拿登录接口测试举例;

1、问题一:

运行如下代码,发现报错,我们公钥直接传输了字符串,而rsa.encrypt(message, pub_key )里的pub_key 是一个对象;则需要将pub_key 转化为一个pem格式对象

修改之后的代码:

import rsa
import base64#导入秘钥
#privateKey 字符串的开头和结尾一定要是 RSA PRIVATE KEY,否则会报错
privateKey = """
-----BEGIN RSA PRIVATE KEY-----
接口文档里获取,或者找开发人员
-----END RSA PRIVATE KEY-----
"""
publicKey = """
-----BEGIN PUBLIC KEY-----
接口文档里获取,或者找开发人员
-----END PUBLIC KEY-----
"""
message ='xxxx' #需要加密的参数
print('Before encrypted:',message)
pub_key = rsa.PublicKey.load_pkcs1_openssl_pem(publicKey.encode())#将公钥由string格式的字符串转化为一个pem格式的对象
private_Key = rsa.PrivateKey.load_pkcs1(privateKey.encode()) #将私钥由string格式的字符串转化为一个pem格式的对象
message = message.encode(encoding='utf-8') #定义参数格式
cryptedMessage = rsa.encrypt(message, pub_key)# 字符串用公钥加密
print('After encrypted:\n',cryptedMessage) # 打印加密后的文件
key_str_text = base64.b64encode(cryptedMessage)  # base64进行二进制编码
print(key_str_text)
decryptedmessage = rsa.decrypt(cryptedMessage, private_Key) # 将加密的参数用私钥进行解密
decryptedmessage = decryptedmessage.decode(encoding='utf-8') #定义解密后的参数格式
print('After decrypted:',decryptedmessage)

2、问题二:

运行代码,发现报错,私钥的开头和结尾错误,才会报这样的错误

私钥的定义:
privateKey = “”"
-----BEGIN RSA PRIVATE KEY-----
接口文档里获取,或者找开发人员
-----END RSA PRIVATE KEY-----
“”"

公钥的定义:
publicKey = “”"
-----BEGIN PUBLIC KEY-----
接口文档里获取,或者找开发人员
-----END PUBLIC KEY-----
“”"

综上所述:
Python3.7进行RSA加密或解密的思路:

  1. 根据获得的公钥和私钥字符串,一定要转化为对应的pem格式的对象;
  2. 注意公钥和私钥字符串设置时,开头和结尾的区别;
    私钥开头结尾:
  3. 公钥加密的模块,cryptedMessage=rsa.encrypt(message, pub_key);
  4. 私钥解密的模块,decryptedmessage = rsa.decrypt(cryptedMessage, private_Key);

python3.7中RSA加密遇到的问题相关推荐

  1. python3 + wxpython 实现RSA加密聊天室

    python3 + wxpython 实现 RSA 加密聊天室 2018年8月2日16:31:26 [原创] 目录:python 编程博客 索引 1. 运行环境 最近打算使用 python3 写一个图 ...

  2. java rsa 解密_Java中RSA加密解密的实现方法分析

    本文实例讲述了Java中RSA加密解密的实现方法.分享给大家供大家参考,具体如下: public static void main(String[] args) throws Exception { ...

  3. python3 rsa加密_【Python】Python3 实现 JS 中 RSA 加密的 NoPadding 模式

    前因后果之哗啦啦废话连篇: 这几天本人在 Python 做某网站登陆的时候,发现其登陆时用户名和密码被加密了 F12 仔细看了一下,发现是调用了一个 js 的 rsa 加密库,页面 dom 中有 rs ...

  4. Android中RSA加密

    上次我们说了一个MD5加密,我们来复习一下.这是一种单向加密方式.我们只能让拦截我们数据的人不知道我们真实的内容是什么,但是我们不能反向解密.一般用于信息验证的场合.今天说的就是一个可以加密也可以解密 ...

  5. Vue项目中rsa加密

    目录 引言 一.安装jsencrypt 二.引入jsencrypt 三.获取公钥(调接口) 四.引入getPubKey 引言 客户端初始化访问登录服务时,需要以账号和密码作为参数请求后台接口,此时后台 ...

  6. php中rsa加密及解密和签名及验签

    加密的内容长度限制为密钥长度少11位,如128位的密钥最多加密的内容为117个长度. 公钥加密 $public_content=file_get_contents(公钥路径); $public_key ...

  7. C# Java间进行RSA加密解密交互

    C# Java间进行RSA加密解密交互 原文:C# Java间进行RSA加密解密交互 这里,讲一下RSA算法加解密在C#和Java之间交互的问题,这两天纠结了很久,也看了很多其他人写的文章,颇受裨益, ...

  8. php rsa公钥加密,PHP RSA加密

    这两天正好做一个rsa加密,现在就总结一下其中的几个要点. 1.什么是rsa算法 RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德 ...

  9. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用

    环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...

最新文章

  1. python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码
  2. 算法题:水洼有多少(C++)
  3. phpunit 单元测试案例--签到任务
  4. php-箭头r含义,php中-箭头的用法和意义
  5. Java RMI(2):项目中使用RMI
  6. 【强化学习】Actor Critic原理
  7. 消息提示框-事件冒泡
  8. 2017-12-09 JavaScript实现ZLOGO子集: 测试用例
  9. 关于鼠标移到gridview行上,背景变色的问题。
  10. 使用Anaconda3安装tensorflow,opencv,使其可以在spyder中运行
  11. Unity Shader 噪声消融特效 - 剑灵死亡特效
  12. 2017.4.5 java中static关键字
  13. 遗传算法原理及应用三(遗传算法高级实现)
  14. 数字钟Matlab仿真,简单数字钟仿真电路图大全(五款数字钟仿真电路图) - 全文...
  15. CIO们欲加大对网络的投资 WLAN等成重点
  16. 【OpenGL】高级片段着色器——高斯模糊和索贝尔边缘检测
  17. english need study and insist 1
  18. iapp卸载指定软件代码,iapp删除文件夹代码
  19. 中了exe病毒文件夹变exe应用程序解决办法
  20. 谁说程序员不懂浪漫,表白代码来啦~

热门文章

  1. java 当前utc时间_Java获取UTC时间的方法详解
  2. 稳定靠谱的企业云桌面选择
  3. 应用于3D图形制作环境的_JITStack轻量级GPU云桌面
  4. 面试题整理 !=!=未看 *****面试题整理最全 有用
  5. 饼图legend显示百分比
  6. Windows10 电源计划只有平衡模式解决办法
  7. Windows为无扩展名程序设置默认打开方式
  8. Laravel请求钉钉获取access_token报错:cURL error 60: SSL certificate problem: unable to get local issuer certi
  9. 以太坊智能合约交互调用,web3.js,web3j两种方式实现
  10. 用RecyclerView实现类似支付宝应用图标拖拽排序以及增删管理的功能