python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到)
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址
http://www.cnblogs.com/Colin-Cai/p/8013009.html
作者:窗户
QQ:6679072
E-mail:6679072@qq.com
使用RSA公钥解密,用openssl命令就是openssl rsautl -verify -in cipher_text -inkey public.pem -pubin -out clear_text,但其python网上还真没有找到有博文去写,只有hash的rsa解签名。
想了想原理,然后到rsa库的python代码里找了找,从verify的代码里提取了出来,又试验了试验,一切OK了。
代码如下:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
#rsa
from rsa import PublicKey, common, transform, core
def f(cipher, PUBLIC_KEY):
public_key = PublicKey.load_pkcs1(PUBLIC_KEY)
encrypted = transform.bytes2int(cipher)
decrypted = core.decrypt_int(encrypted, public_key.e, public_key.n)
text = transform.int2bytes(decrypted)
if len(text) > 0 and text[0] == '\x01':
pos = text.find('\x00')
if pos > 0:
return text[pos+1:]
else:
return None
fn = sys.stdin.readline()[:-1]
public_key = sys.stdin.readline()[:-1]
x = f(open(fn).read(), open(public_key).read())
print x
用shell验证如下:
$ openssl genrsa -out pri2048.pem 2048
Generating RSA private key, 2048 bit long modulus
..+++
..............................................+++
e is 65537 (0x10001)
$ openssl rsa -in pri2048.pem -out pub2048.pem -RSAPublicKey_out
writing RSA key
$ echo -n 'Just a test' >1.txt
$ openssl rsautl -sign -in 1.txt -inkey pri2048.pem -out 1.bin
$ { echo 1.bin; echo pub2048.pem; } | ./test_rsa.py
Just a test
一切OK,注意,公钥pem从私钥里析出必须用-RSAPublicKey_out,这样pem文件的第一行和最后一行为以下,这样rsa.PublicKey.load_pkcs1才会认识。
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到)相关推荐
- python rsa 公钥解密_python利用rsa库做公钥解密的方法教程
前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...
- python实现rsa加密源代码_python实现RSA加密(解密)算法
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准. 今天只有短的RSA钥匙才可能被强力方式解破.到2008年为止,世界上还没有任何可靠 ...
- python语言实现rsa公钥密码算法_python 实现 rsa 算法加解密密码
python版本:2.7 需要用到的模块:pycrypto 模块下载地址:https://pypi.org/project/pycrypto/#files 私钥和公钥的准备: 在进行RSA加密前,我们 ...
- python实现非对称加密算法_Python使用rsa模块实现非对称加密与解密
Python使用rsa模块实现非对称加密与解密 1.简单介绍: RSA加密算法是一种非对称加密算法 是由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制.加密密钥(即公开密钥)PK是公 ...
- python实现rsa加密解密_python实现RSA加解密
RSA的算法涉及三个参数,n.e.d. 其中,n是两个大质数p.q的积,n的二进制表示所占用的位数,就是所谓的密钥长度. e和d是一对相关的值,e可以任意取,但要求e与(p-1)*(q-1)互质:再选 ...
- python requests下载图片_Python使用urllib库、requests库下载图片的方法比较
我们知道,使用Python制作一个爬虫程序,requests库是一个不错的选择,requests发送网络请求非常简单,比较使用urllib库,使用requests库可以大大减少代码量,它还可以定制请求 ...
- python语言实现rsa公钥密码算法_python实现RSA算法
文章最后更新时间为:2018年12月26日 23:07:29 RSA是一种公钥密码算法,其影响力我就不多说了,算法原理网上多的是,看了几篇,还是觉得阮一峰写的好懂. 要想实现RSA,其关键在于大数运算 ...
- python实现加密字符串_Python实现对字符串的加密解密方法示例
本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...
- python image模块安装_python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
最新文章
- Python科学计算扩展库NumPy之广播(Broadcast)
- JFace中的表格型树TableTreeViewer
- Codeforces Round #529 (Div. 3) F. Make It Connected(最小生成树)
- 用html制作广告图片切换效果,基于jquery实现图片广告轮换效果代码
- 监听器Listener
- commit 规范性提交
- 企业运维经典面试题汇总(5)
- Android 如何全局获取Context
- 全能文件恢复软件推荐
- mysql慢查询日志配置_MySQL 慢查询日志配置与简析
- usb扫描枪驱动下载 wince_常用扫描枪驱动
- CATIA V5汽车焊接夹具设计从基础到高级培训视频教程
- mysql 拼音查询_MySQL拼音首字母查询
- Ubuntu 12.04无法识别华为U8500
- 图片如何转为GIF?gif格式的图片怎么做?
- 亚马逊SP-API对接实践
- python:while 的无条件循环
- python爬虫入门案例day10:珠宝图片
- 统计学习方法学习梳理(一)统计学习的分类
- python绘制箱线图-python 中箱线图绘制