菜鸟贴:如何在MFC中,控制一个button获得另一个文本框中的输入数据?
这是AES的一个VC++调用函数,我考下来实现一下, 里面mingwen.GetWindowText(s) ;和miyao.GetWindowText(s1) 应该是原贴自己定义了。 可是我不知道如何编写调用。 本想不行就将s,s1设置成一个常量。也不知道怎么弄,求哪位朋友有空帮忙看一下!!!
void Cadd_mfcDlg::OnBnClickedButton1()
{
int i;
CString s,s1;
mingwen.GetWindowText(s) ;//s用来接收明文,s1用来接收密钥
rijndael rij;//加密类的对象
length=s.GetLength();//明文长度length是Caesproject2Dlg类的成员变量
N=length/16;//每16字节一组,N是Caesproject2Dlg类的成员变量
if(length%16==0) //作用是当明文长度不是128bit整数倍时调整N值
{
N=N;
}
else
{
length=length+16-length%16;
N=N+1;
}
LPTSTR lpsz = new TCHAR[s.GetLength()+1];
_tcscpy(lpsz,s);//将明文拷贝到lpsz指向的内存
if(s.GetLength()%16!=0) //如果明文长度不是128bit的倍数用空格补齐剩余的位
{
for(i=0;i<(int)(16-s.GetLength()%16);i++)
{
lpsz[length-16+s.GetLength()%16+i]=' ';
}
}
unsigned char *e_bit;//用于指向加密后的密文
e_bit=new unsigned char [length];
miyao.GetWindowText(s1);//从文本框中取得密钥
LPTSTR k_bit = new TCHAR[256];
_tcscpy(k_bit,s1);//将密钥拷贝到k_bit指向的内存
rij.set_key((unsigned char *)k_bit,256);//设置密钥
for(int j=0;j<N;j++)//循环加密N次,每次128bit
{
rij.encrypt((unsigned char *)lpsz,e_bit);
lpsz+=16;
e_bit+=16;
}
lpsz=lpsz-16*N;//明文指针回到明文头
e_bit=e_bit-16*N;//密文指针回到密文头
miwen.SetWindowText((LPCTSTR)e_bit);//显示密文
// TODO: 在此添加控件通知处理程序代码
}