intolda=a;
intoldb=b;
intoldc=c;
intoldd=d;
a=ff(a,b,c,d,x[i+0],7,0xD76AA478);
d=ff(d,a,b,c,x[i+1],12,0xE8C7B756);
c=ff(c,d,a,b,x[i+2],17,0x242070DB);
b=ff(b,c,d,a,x[i+3],22,0xC1BDCEEE);
a=ff(a,b,c,d,x[i+4],7,0xF57C0FAF);
d=ff(d,a,b,c,x[i+5],12,0x4787C62A);
c=ff(c,d,a,b,x[i+6],17,0xA8304613);
b=ff(b,c,d,a,x[i+7],22,0xFD469501);
a=ff(a,b,c,d,x[i+8],7,0x698098D8);
d=ff(d,a,b,c,x[i+9],12,0x8B44F7AF);
c=ff(c,d,a,b,x[i+10],17,0xFFFF5BB1);
b=ff(b,c,d,a,x[i+11],22,0x895CD7BE);
a=ff(a,b,c,d,x[i+12],7,0x6B901122);
d=ff(d,a,b,c,x[i+13],12,0xFD987193);
c=ff(c,d,a,b,x[i+14],17,0xA679438E);
b=ff(b,c,d,a,x[i+15],22,0x49B40821);
课程设计说明书NO.11
a=gg(a,b,c,d,x[i+1],5,0xF61E2562);
d=gg(d,a,b,c,x[i+6],9,0xC040B340);
c=gg(c,d,a,b,x[i+11],14,0x265E5A51);
b=gg(b,c,d,a,x[i+0],20,0xE9B6C7AA);
a=gg(a,b,c,d,x[i+5],5,0xD62F105D);
d=gg(d,a,b,c,x[i+10],9,0x02441453);
c=gg(c,d,a,b,x[i+15],14,0xD8A1E681);
b=gg(b,c,d,a,x[i+4],20,0xE7D3FBC8);
a=gg(a,b,c,d,x[i+9],5,0x21E1CDE6);
d=gg(d,a,b,c,x[i+14],9,0xC33707D6);
c=gg(c,d,a,b,x[i+3],14,0xF4D50D87);
b=gg(b,c,d,a,x[i+8],20,0x455A14ED);
a=gg(a,b,c,d,x[i+13],5,0xA9E3E905);
d=gg(d,a,b,c,x[i+2],9,0xFCEFA3F8);
c=gg(c,d,a,b,x[i+7],14,0x676F02D9);
b=gg(b,c,d,a,x[i+12],20,0x8D2A4C8A);
a=hh(a,b,c,d,x[i+5],4,0xFFFA3942);
d=hh(d,a,b,c,x[i+8],11,0x8771F681);
c=hh(c,d,a,b,x[i+11],16,0x6D9D6122);
b=hh(b,c,d,a,x[i+14],23,0xFDE5380C);
a=hh(a,b,c,d,x[i+1],4,0xA4BEEA44);
d=hh(d,a,b,c,x[i+4],11,0x4BDECFA9);
c=hh(c,d,a,b,x[i+7],16,0xF6BB4B60);
b=hh(b,c,d,a,x[i+10],23,0xBEBFBC70);
a=hh(a,b,c,d,x[i+13],4,0x289B7EC6);
课程设计说明书NO.12
d=hh(d,a,b,c,x[i+0],11,0xEAA127FA);
c=hh(c,d,a,b,x[i+3],16,0xD4EF3085);
b=hh(b,c,d,a,x[i+6],23,0x04881D05);
a=hh(a,b,c,d,x[i+9],4,0xD9D4D039);
d=hh(d,a,b,c,x[i+12],11,0xE6DB99E5);
c=hh(c,d,a,b,x[i+15],16,0x1FA27CF8);
b=hh(b,c,d,a,x[i+2],23,0xC4AC5665);
a=ii(a,b,c,d,x[i+0],6,0xF4292244);
d=ii(d,a,b,c,x[i+7],10,0x432AFF97);
c=ii(c,d,a,b,x[i+14],15,0xAB9423A7);
b=ii(b,c,d,a,x[i+5],21,0xFC93A039);
a=ii(a,b,c,d,x[i+12],6,0x655B59C3);
d=ii(d,a,b,c,x[i+3],10,0x8F0CCC92);
c=ii(c,d,a,b,x[i+10],15,0xFFEFF47D);
b=ii(b,c,d,a,x[i+1],21,0x85845DD1);
a=ii(a,b,c,d,x[i+8],6,0x6FA87E4F);
d=ii(d,a,b,c,x[i+15],10,0xFE2CE6E0);
c=ii(c,d,a,b,x[i+6],15,0xA3014314);
b=ii(b,c,d,a,x[i+13],21,0x4E0811A1);
a=ii(a,b,c,d,x[i+4],6,0xF7537E82);
d=ii(d,a,b,c,x[i+11],10,0xBD3AF235);
c=ii(c,d,a,b,x[i+2],15,0x2AD7D2BB);
b=ii(b,c,d,a,x[i+9],21,0xEB86D391);
a=add(a,olda);
b=add(b,oldb);
课程设计说明书NO.13
c=add(c,oldc);
d=add(d,oldd);
}
returnrhex(a)+rhex(b)+rhex(c)+rhex(d);
}
}
importjava.math.BigInteger;
publicclassRSA{
privatelongp,q,e,d,n;
publicRSA(){
intpIndex=(int)(Math.random()*10);
intqIndex;
inteIndex;
do{
qIndex=(int)(Math.random()*10);
}while(qIndex==pIndex);
do{
eIndex=(int)(Math.random()*10);
}while(eIndex==pIndex||eIndex==pIndex);
p=1033;
q=2017;
e=29437;
n=p*q;
d=calculateD();
}
课程设计说明书NO.14
privatelongcalculateD(){
longt0=0,t1=1,t2=-1;
longr0=(p-1)*(q-1),m=r0,r1=e,r2=-1;
do{
longq=r0/r1;
r2=r0-r1*q;
if(r2==0)
break;
t2=t0-t1*q;
while(t2<0){
t2=m;
}
if(t2>=m){
t2%=m;
}
r0=r1;
r1=r2;
t0=t1;
t1=t2;
}while(r2!
=0);
if(r1!
=1){
return0;
}else{
returnt2;
}
}
课程设计说明书NO.15
publiclonggetE(){
returne;
}
publiclonggetN(){
returnn;
}
publiclong