一个加密的控制台项目,自己用MFC简单封装了下,就是字符串输出这里搞不懂,我想把函数Calculate_512()的返回值传进编辑框的变量CalculateJG使得它可以正常显示,本来输出应该是128位明文,但是传进去调试结果都是无法正常显示的值.,请问如何用string或更好的方法解决这个问题?
dlg512.cpp
string str512;
unsigned char Calculate_512()
{
int i;
extern char putin[102400];
cin.get(putin, 102400);
for (unsigned int i = 0; i < strlen((char*)putin); i++) {
printf("%02x", putin[i]);
}
unsigned char sha512Code[64];
SHA512_CB sha512;
SHA512Init(&sha512);
SHA512Update(&sha512, (unsigned char*)putin, strlen((char*)putin));
SHA512Final(&sha512, sha512Code);
//Md5加密后的32位结果
for (i = 0; i < 64; i++)
{
cout << sha512Code[i];
}
str512 =(unsigned char) sha512Code;
return 0;
}
...
/*点击生成密文的按钮。
*绑定事件: 点击后把输入框控件已经输入的内容同步到变量putin
* 再把计算后的结果从变量同步到编辑框
*/
void SHA512_Dlg::OnBnClickedIdmake()
{
UpdateData(TRUE); //控件输入内容->变量
if (EDIT_TEXT.IsEmpty()) //空值弹出错误消息提醒
{
MessageBox(_T("输入不能为空!"), _T("输入错误"));
}
char putin = (char)(LPCTSTR)(EDIT_TEXT);
CalculateJG = (char)Calculate_512( );
UpdateData(false);
}