python实现rsa加密解密_RSA加密算法三:使用python实现简单RSA加解密过程

根据RSA加解密原理,不难写出RSA加密算法

虽然python中可以直接导入RSA库用于RSA应用、证书生成,这里只是单纯的从加解密算法本身实现

只用到了一个random库,为了演示和计算方便,选取的q和p的值限制在二位数100之内

并且应该使用扩展欧几里得算法得到d的值也是用简单的枚举

#author : AtomKid

#version : 1.0

import random

def is_prime(n):

if n == 2:

return True

for i in range(2, n/2+1):

if n%i == 0:

return False

return True

#get prime p and q

def get_pq():

p, q = 0, 0

while True:

p, q = random.randint(10, 100), random.randint(10, 100)

if is_prime(p) and is_prime(q) and p!=q :

return p,q

#get e and d

def get_ed(p,q):

phn = (p-1)*(q-1)

while True:

e = random.randint(2, 50)

if is_prime(e):

for d in range(2, 1000):

if e*d % phn == 1:

return e,d

p,q = get_pq()

n = p*q

e,d = get_ed(p,q)

print " public key: (n,e) =",(n,e)

print "private key: (n,d) =",(n,d)

m = random.randint(2, 100)

c = m**e%n

print "message m =",m

print "encrypt:\n c =",c

print "decrypt:\n m =",c**d%n

运行测试结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值