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
运行测试结果: