頁:
[1]
有點搞不懂
本帖最後由 無極狂神 於 2016-12-29 10:45 AM 編輯是這樣的,最近我們老師希望我們寫出一份RSA加密演算法的作業
程式如果是以分界線以上來做,最後會印出"C=2081"
可是以分界線以下最後則會印出"C=0"???
希望各位前輩能指點迷津,告訴我為何會有這種差異?
p=43,q=59,e=13,M=1819,M^e (mod p*q) = C
程式打得醜,望各位見諒{
int p=43;
int q=59;
int e=13;
int n=p*q;
int M=1819;
int i=1;
int num;
for(;i<e;i++){
if(M<n){
num=1819*M;
M=num%n;
}
}
int C=M;
print f(" p=%d\n q=%d\n e=%d\n n=%d\n C=%d\n",p,q,e,n,C);
system("pause");
return 0;
}
------------------------------我是分界線-----------------------------------------------
#include<stdio.h>
#include<stdlib.h>
int main(){
int p,q,e,M,num;
int n=p*q;
int i=1;
for(;i<e;i++){
if(M<n){
num=1819*M;
M=num%n;
}
}
int C=M;
print f("p=");
scanf("%d", &p);
print f("q=");
scanf("%d", &q);
print f("n=%d\n",p*q);
print f("e=");
scanf("%d", &e);
print f("M=");
scanf("%d", &M);
print f("C=%d",C);
system("pause");
return 0;
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 把 print f f 跟t 分開 一點點就不會敏感了喔 cht1902316 發表於 2016-12-28 11:08 AM static/image/common/back.gif
把 print f f 跟t 分開 一點點就不會敏感了喔
大大你認真!? 我只是覺得這跟C的值好像沒有關係? 分隔線下面錯誤的地方在於....變數在運算前您根本沒有把該填的值放進去...反而是運算後才填值...能對那才叫奇怪...所以幫您改個位置~您要的應該是如下#include<stdio.h>
#include<stdlib.h>
int main()
{
int p,q,e,M,num;
print f("p=");
scanf("%d", &p);
print f("q=");
scanf("%d", &q);
print f("n=%d\n",p*q);
print f("e=");
scanf("%d", &e);
print f("M=");
scanf("%d", &M);
int n=p*q;
int i=1;
for(;i<e;i++)
{
if(M<n)
{
num=1819*M;
M=num%n;
}
}
int C=M;
print f("C=%d",C);
system("pause");
return 0;
}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]