使用c进行rsa加密解密

我正在尝试使用Open SSL编写RSA加密和解密的C代码。 但我无法这样做。 我用谷歌搜索了它,但无论我从互联网上得到什么代码,它都是我的头脑。 mainfunction在这里,我从堆栈溢出。 我尝试过使用它……但它不起作用。 可能是我的坏事。

 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 \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加密的步骤如下:

  1. 将公钥读入RSA *结构。 这取决于您的密钥格式。 如果密钥是PEM格式,请使用PEM_read_RSA_PUBKEY函数。 如果是DERforms,请使用d2i_RSA
  2. 使用RSA公钥加密数据。 使用RSA_public_encrypt函数。
  3. 将数据写入文件或任何您想要做的事情。

RSA解密的步骤是:

  1. 将私钥读入RSA *结构。 它类似于RSA加密中的步骤1,但有一些细微差别。
  2. 使用RSA_private_decrypt解密数据。 使用RSA_private_decrypt

您可以查看非常有用的OpenSSL文档,其名称很直观。 我给你一个广泛的想法。 如果您需要更多帮助,我可以发布代码示例。