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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rsa加密demo

發布時間:2024/6/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rsa加密demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

選擇一對不同的、足夠大的素數p,q。

計算n=pq。

計算f(n)=(p-1)(q-1),同時對p, q嚴加保密,不讓任何人知道。

找一個與f(n)互質的數e,且1<e<f(n)。

計算d,使得de≡1 mod f(n)。這個公式也可以表達為d ≡ e-1 mod f(n)
這里要解釋一下,≡是數論中表示同余的符號。公式中,≡符號的左邊必須和符號右邊同余,也就是兩邊模運算結果相同。顯而易見,不管f(n)取什么值,符號右邊1 mod f(n)的結果都等于1;符號的左邊d與e的乘積做模運算后的結果也必須等于1。這就需要計算出d的值,讓這個同余等式能夠成立。

公鑰KU=(e,n),私鑰KR=(d,n)。

加密時,先將明文變換成0至n-1的一個整數M。若明文較長,可先分割成適當的組,然后再進行交換。設密文為C,則加密過程為:C ≡ M^e mod n。

解密過程為:M ≡ C^d mod n。

摘自http://bank.hexun.com/2009-06-24/118958531.html

n = 33 = p * q = 3 * 11 t = (p - 1) * (q - 1) = 2 * 10 = 20 e = 3var e = 3, t = 20, d; for(d = 3; d && d < 10000; d++){ //為了避免死循環,加上d<10000if(d * e % t == 1){console.log('d=%d',d);break;} }// d = 7 // // n = 33 // d = 7 // e = 3 // // C = M ^ d % n // M = C ^ e % nfunction rsa(a, k, m) { // a^k%m 摘自 http://wenku.baidu.com/view/27cea13743323968011c923b.htmlvar b = 1;while (k >= 1) {if (k % 2 == 1){b = a * b % m;}a = a * a % m;k = parseInt(k / 2);}return b; }

http://www.ohdave.com/rsa/

轉載于:https://www.cnblogs.com/arliang/archive/2013/04/16/RSA_demo.html

總結

以上是生活随笔為你收集整理的rsa加密demo的全部內容,希望文章能夠幫你解決所遇到的問題。

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