对于已经生成的私钥,把它导出到本地*.key 文件
能成功导出,但是导出的文件中的内容与原私钥不符,是乱码,是导出的方式有问题吗?
代码如下:
void CRSADialog::OnBnClickedBtnExportKey2() //导出私钥
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog dlg(FALSE, L"key", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"*.key||");
if (dlg.DoModal() == IDOK) {
CString fileName = dlg.GetPathName();
CFile file(fileName, CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file, CArchive::store);
UpdateData(TRUE);
ar << m_priKey;
ar.Close();
}
}
char* buffer="hello cfile";
_CFile fWrite(_T("path"),CFile::modeWrite|CFile::modeCreate|CFile::typeBinary);
fWrite.Write(buffer,strlen(buffer);
fWrite.Flush();
fWrite.Close();
直接将原始内容二进制写入就好了。
肯定格式不对,CArchive的输出显然是它私有的格式,你保存你自己的对象还可以,但是用它存储标准格式的文件注定悲剧。
你需要用 CFile 代替 CArchive,并且写入正确的格式。我不是很清楚 .key 是什么格式,你应该查询下它的格式规范来写入字节。