输入错误,运行之后图:
正确的运行应该是“请输入密钥长度”之后接
“请输入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];