gpt4 book ai didi

c - 将数据(结构)写入文件

转载 作者:行者123 更新时间:2023-11-30 14:47:49 25 4
gpt4 key购买 nike

好吧,我有一个功能:

CRYPT_PRIVATE_KEY_INFO *pPriKeyInfo = NULL;
DWORD cbPriKeyInfo = 0;
SxKS_ExportPKCS8_PriKeyInfo(
pKey,
&pPriKeyInfo,
&cbPriKeyInfo);

将存储 key (私钥)导出为特定结构的私钥:

typedef struct _CRYPT_PRIVATE_KEY_INFO{
DWORD Version;
CRYPT_ALGORITHM_IDENTIFIER Algorithm;
CRYPT_DER_BLOB PrivateKey;
PCRYPT_ATTRIBUTES pAttributes;
} CRYPT_PRIVATE_KEY_INFO, *PCRYPT_PRIVATE_KEY_INFO;

我需要将此结构中的数据写入文件:

FILE *fp;
fp = fopen("c:\\CRYPT_PRIVATE_KEY_INFO.pem", "wb");
fwrite(&pPriKeyInfo, sizeof(pPriKeyInfo), cbPriKeyInfo, fp);
fclose(fp);

问题是,我这样做对吗?因为我认为我得到了错误的数据。

最佳答案

您正在将指针写入文件。指针指向特定于当前正在运行的进程的内存。如果在另一个进程中加载​​该指针,即使是运行相同程序的进程,该指针也将无效。

因此,快速修复方法是不将指针写入文件,而是将结构写入文件。

但是这将导致同样的问题再次发生,因为结构中的成员之一是指针。您需要做的是serialize结构。

关于c - 将数据(结构)写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50946203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com