我正在尝试使用 Open SSL 编写 RSA 加密和解密的 C 代码。但我不能这样做。我用谷歌搜索了它,但无论我从互联网上得到什么代码,它都超出了我的想象。main
函数在这里,这是我从堆栈溢出中得到的。我尝试使用它......但它不起作用。可能是我的不好。
encrypt(FILE *rsa_Pkey_fole,FILE *in_file,FILE *out_file){
}
int main(int argc, char *argv[])
{
FILE *rsa_pkey_file, *infile;
int rv;
if (argc < 2) {
fprintf(stderr, "Usage: %s <PEM RSA Public Key File>\n", argv[0]);
exit(1);
}
rsa_pkey_file = fopen(argv[1], "rb");
infile = fopen(argv[2], "w");
if (!rsa_pkey_file) {
perror(argv[1]);
fprintf(stderr, "Error loading PEM RSA Public Key File.\n");
exit(2);
}
rv = encrypt(rsa_pkey_file, infile.txt, stdout);
fclose(rsa_pkey_file);
return rv;
}
和类似的方式解密。
如何使用 C 中的 Open SSL 库以简单的方式对文件进行 RSA 加密和解密?
RSA加密的步骤如下:
-
将公钥读入
RSA *
结构。这取决于您的密钥格式。如果钥匙在PEM
格式、使用PEM_read_RSA_PUBKEY
功能。如果是在DER
形式、用途d2i_RSA
.
-
使用 RSA 公钥加密您的数据。 Use
RSA_public_encrypt
功能。
- 将数据写入文件或执行任何您想要执行的操作。
RSA解密的步骤是:
-
将私钥读入
RSA *
结构。它与 RSA 加密中的步骤 1 类似,但有一些细微差别。
-
使用解密数据
RSA_private_decrypt
. Use RSA_private_decrypt
.
你可以看看 OpenSSL 文档,它非常有用,而且它的名字也很直观。我给你的只是广泛的想法。如果您需要更多帮助,我可以发布代码示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)