python实现rsa加密解密代码_python实现RSA加解密

本文介绍了如何使用Python实现RSA加密解密算法,详细阐述了算法原理,并提供了完整的代码示例,包括生成素数、计算互质数、求解d、生成公钥和私钥以及加密解密的过程。
摘要由CSDN通过智能技术生成

RSA的算法涉及三个参数,n、e、d。

其中,n是两个大质数p、q的积,n的二进制表示所占用的位数,就是所谓的密钥长度。

e和d是一对相关的值,e能够任意取,但要求e与(p-1)*(q-1)互质;再选择d,要求(d*e)mod((p-1)*(q-1))=1。

(n,e),(n,d)就是密钥对。其中(n,e)为公钥,(n,d)为私钥。

RSA加解密的算法彻底相同,设A为明文,B为密文,则:A=B^d mod n;B=A^e mod n;(公钥加密体制中,通常用公钥加密,私钥解密)

e和d能够互换使用,即:

A=B^d mod n;B=A^e mod n;算法

代码参考以下:

#coding -*- utf:8 -*-

import math

import random数组

#生成素数数组

def prime_array():

arraya = []

for i in range(2,100): #生成前100中的素数,从2开始由于2是最小的素数

x = prime(i,2) #i为素数时返回True,则将x加入arraya数组中;2为测试值

if x:

arraya.append(i)

return arrayaapp

#判断是否为素数

def prime(n, test_divisor):

if ma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值