1 回答

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
基礎(chǔ)
RSA算法非常簡(jiǎn)單,概述如下:
找兩素?cái)?shù)p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一個(gè)數(shù)e,要求滿足eperl -Mbigint -e "print 465**63%2773"
244
即用e對(duì)c解密后獲得m=244 , 該值和原始信息M相等.
字符串加密
把上面的過(guò)程集成一下我們就能實(shí)現(xiàn)一個(gè)對(duì)字符串加密解密的示例了.
每次取字符串中的一個(gè)字符的ascii值作為M進(jìn)行計(jì)算,其輸出為加密后16進(jìn)制
的數(shù)的字符串形式,按3字節(jié)表示,如01F
代碼如下:
#!/usr/bin/perl -w
#RSA 計(jì)算過(guò)程學(xué)習(xí)程序編寫的測(cè)試程序
#watercloud 2003-8-12
#
use strict;
use Math::BigInt;
my %RSA_CORE = (n=>2773,e=>63,d=>847); #p=47,q=59
my $N=new Math::BigInt($RSA_CORE{n});
- 1 回答
- 0 關(guān)注
- 683 瀏覽
添加回答
舉報(bào)