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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python杂记-RSA加解密实现(2)

發布時間:2025/3/12 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python杂记-RSA加解密实现(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二、計算素數
質數(Prime number),又稱素數,指在大于1的自然數中,除了1和該數自身外,無法被其他自然數整除的數(也可定義為只有1與該數本身兩個正因數的數)。大于1的自然數若不是素數,則稱之為合數(也稱為合成數)。例如,5是個素數,因為其正約數只有1與5。7是個素數,因為其正約數只有1與7。而4則是個合數,因為除了1與4外,2也是其正約數。6也是個合數,因為除了1與6外,2與3也是其正約數。算術基本定理確立了素數于數論里的核心地位:任何大于1的整數均可被表示成一串唯一素數之乘積。為了確保該定理的唯一性,1被定義為不是素數。
測試n是否為素數的最基本方法為試除法。將n除以每個大于1且小于等于n的平方根之的整數,若存在一個相除為整數的結果,則n不是素數,反之則是個素數。

#!/usr/bin/env python3 # -*- coding: utf-8 -*- #2-10-3-2.pydef getPrimeNumbers(minNum,maxNum):pNs=[]import mathfor n in range(minNum,maxNum):for i in range(2,int(math.sqrt(n))+1): if (n%i==0):break else:pNs.append(n)return pNspNums=getPrimeNumbers(3000,3500) print(pNums)

2-10-3-2.py計算3000-3500之間的素數,運行結果如下:
[3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499]
三、計算公鑰和私鑰
1、計算p和q

#!/usr/bin/env python3 # -*- coding: utf-8 -*- #2-10-3-3.py import base64 import randomdef enCodeBase64(myStr):return base64.b64encode(myStr.encode("utf8"))def deCodeBase64(myStr):return base64.b64decode(myStr).decode("utf8")strTxt=""" 1978年出現了著名的RSA算法,它通常是先生成一對RSA密鑰, 其中之一是保密密鑰,由用戶保存; 另一個為公開密鑰,可對外公開,甚至可在網絡服務器中注冊。 為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。 這就使加密的計算量很大。 """def getPrimeNumbers(minNum,maxNum):pNs=[]import mathfor n in range(minNum,maxNum):for i in range(2,int(math.sqrt(n))+1): if (n%i==0):break else:pNs.append(n)breakreturn pNs#p,q minN=random.randint(10000, 25000) maxN=random.randint(minN+10000, minN+20000) p=getPrimeNumbers(minN,maxN) minN=random.randint(1000, 2500) maxN=random.randint(minN+1000, minN+2000) q=getPrimeNumbers(minN,maxN) print(p,q)

總結

以上是生活随笔為你收集整理的python杂记-RSA加解密实现(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。