日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到)

發(fā)布時(shí)間:2024/7/5 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版權(quán)申明:本文為博主窗戶(hù)(Colin Cai)原創(chuàng),歡迎轉(zhuǎn)帖。如要轉(zhuǎn)貼,必須注明原文網(wǎng)址

http://www.cnblogs.com/Colin-Cai/p/8013009.html

作者:窗戶(hù)

QQ:6679072

E-mail:6679072@qq.com

使用RSA公鑰解密,用openssl命令就是openssl rsautl -verify -in cipher_text -inkey public.pem -pubin -out clear_text,但其python網(wǎng)上還真沒(méi)有找到有博文去寫(xiě),只有hash的rsa解簽名。

想了想原理,然后到rsa庫(kù)的python代碼里找了找,從verify的代碼里提取了出來(lái),又試驗(yàn)了試驗(yàn),一切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驗(yàn)證如下:

$ 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才會(huì)認(rèn)識(shí)。

-----BEGIN RSA PUBLIC KEY-----

-----END RSA PUBLIC KEY-----

總結(jié)

以上是生活随笔為你收集整理的python rsa 公钥解密_python使用rsa库做公钥解密(网上别处找不到)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。