我正在尝试使用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加密和解密?
答案 0 :(得分:4)
RSA加密的步骤如下:
RSA *
结构。这取决于您的密钥格式。如果密钥为PEM
格式,请使用PEM_read_RSA_PUBKEY
个函数。如果是DER
格式,请使用d2i_RSA
。RSA_public_encrypt
功能。RSA解密的步骤是:
RSA *
结构。类似于RSA加密中的第1步,但有一些细微差别。RSA_private_decrypt
解密数据。使用RSA_private_decrypt
。您可以查看OpenSSL文档,它非常有用且名称直观。我给你的是广泛的想法。如果您需要更多帮助,我可以发布代码示例。