输入错误,运行之后图:
正确的运行应该是“请输入密钥长度”之后接
“请输入xx位密钥”
但是出现了如图的情况,求分析代码哪里错了
正确的运行应该是“请输入密钥长度”之后接
“请输入xx位密钥”
但是出现了如图的情况,求分析代码哪里错了
#include "aes.h"
#include <iostream>
using namespace std;
void main(){
unsigned char mw[16];
unsigned char key[32];
int i,Nr,Nk,Nb,len;
AES aes(key);
cout<<"请依次输入16位明文:";
for (i=0; i<16; i++)
{
printf("请输入第%d个数:", i+1);
cin >> hex >> mw[i];
}
cout<<endl;
cout<<"请输入密钥的长度:";
cin>>len;
if(len == 128)
{
printf("请输入16个字符的密钥");
cin>>key;
Nb=4;Nk=4;Nr=10;
}
else if(len == 192)
{
printf("请输入24个字符的密钥");
cin>>key;
Nb=4;Nk=6;Nr=12;
}
else if(len == 256)
{
printf("请输入32个字符的密钥");
cin>>key;
Nb=4;Nk=8;Nr=14;
}
cout<<endl;
printf("NB=%d Nk=%d,Nr=%d \n",Nb,Nk,Nr);
cout<<endl;
解决方案:40分
cin >> hex >> mw[i];
改成cin >>mw[i];
改成cin >>mw[i];