求AES加密算法 C代码
感谢大虾们的关注要求加密结果符合http://wenku.baidu.com/view/a3330d12a216147917112808.html中的加密结果即测试结果符...
感谢大虾们的关注
要求加密结果符合
http://wenku.baidu.com/view/a3330d12a216147917112808.html
中的加密结果
即测试结果符合下面的结果
主密钥为:000102030405060708090a0b0c0d0e0f(128bit)。
加密明文:00112233445566778899AABBCCDDEEFF。
密文:69C4E0D86A7B0430D8CDB78070B4C55A。
可以提高悬赏分的
只要C/C++的,Java,C#,Pascal,汇编的我都有了,多谢。
附注:不是DES
http://zhidao.baidu.com/question/124018050.html?si=1
中的是DES
再次万分感谢 展开
要求加密结果符合
http://wenku.baidu.com/view/a3330d12a216147917112808.html
中的加密结果
即测试结果符合下面的结果
主密钥为:000102030405060708090a0b0c0d0e0f(128bit)。
加密明文:00112233445566778899AABBCCDDEEFF。
密文:69C4E0D86A7B0430D8CDB78070B4C55A。
可以提高悬赏分的
只要C/C++的,Java,C#,Pascal,汇编的我都有了,多谢。
附注:不是DES
http://zhidao.baidu.com/question/124018050.html?si=1
中的是DES
再次万分感谢 展开
展开全部
以前编过的,c++可以用的
#include <iostream>
using namespace std;
long gcd(long a, long b)
{
if(b>a) //a中存放较大的数,b中存放较小的数
{
int temp;
temp=a;
a=b;
b=temp;
}
long n;
while((n=a%b)!=0)
{
a=b;
b=n;
}
return b;
}
//---------------------------------------
long cheng_niyuan(long a, long b)
{
for(long i=1; (i*a)%b!=1; i++);
return i;
}
//---------------------------------------
int mi_mo(int a, int b, int n)
{
int K[100];
int top=-1;
while(b)
{
top++;
K[top]=(b%2);
b/=2;
}
int c=0, f=1;
for(; top>=0; top--)
{
c=2*c;
f=(f*f)%n;
if(K[top]==1)
{
c+=1;
f=(f*a)%n;
}
}
return f;
}
//---------------------------------------
int main()
{
int p=5,q=11;
cout<<"p="<<p<<endl;
cout<<"q="<<q<<endl;
long int n=p*q;
cout<<"n="<<n<<endl;
long int fi_n=(p-1)*(q-1);
cout<<"fi_n="<<fi_n<<endl;
int e=3;
cout<<"e="<<e<<endl;
long d=cheng_niyuan(e,fi_n);
int M, C;
cout<<"请输入明文:"<<endl;
cin>>M;
C=mi_mo(M, e, n);
cout<<"对应的密文为:"<<endl;
cout<<C<<endl;
cout<<"请输入密文:"<<endl;
cin>>C;
M=mi_mo(C, d, n);
cout<<"对应的明文为:"<<endl;
cout<<M<<endl;
return 0;
}
#include <iostream>
using namespace std;
long gcd(long a, long b)
{
if(b>a) //a中存放较大的数,b中存放较小的数
{
int temp;
temp=a;
a=b;
b=temp;
}
long n;
while((n=a%b)!=0)
{
a=b;
b=n;
}
return b;
}
//---------------------------------------
long cheng_niyuan(long a, long b)
{
for(long i=1; (i*a)%b!=1; i++);
return i;
}
//---------------------------------------
int mi_mo(int a, int b, int n)
{
int K[100];
int top=-1;
while(b)
{
top++;
K[top]=(b%2);
b/=2;
}
int c=0, f=1;
for(; top>=0; top--)
{
c=2*c;
f=(f*f)%n;
if(K[top]==1)
{
c+=1;
f=(f*a)%n;
}
}
return f;
}
//---------------------------------------
int main()
{
int p=5,q=11;
cout<<"p="<<p<<endl;
cout<<"q="<<q<<endl;
long int n=p*q;
cout<<"n="<<n<<endl;
long int fi_n=(p-1)*(q-1);
cout<<"fi_n="<<fi_n<<endl;
int e=3;
cout<<"e="<<e<<endl;
long d=cheng_niyuan(e,fi_n);
int M, C;
cout<<"请输入明文:"<<endl;
cin>>M;
C=mi_mo(M, e, n);
cout<<"对应的密文为:"<<endl;
cout<<C<<endl;
cout<<"请输入密文:"<<endl;
cin>>C;
M=mi_mo(C, d, n);
cout<<"对应的明文为:"<<endl;
cout<<M<<endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询