使用c进行rsa加密解密
我正在尝试使用Open SSL编写RSA加密和解密的C代码。 但我无法这样做。 我用谷歌搜索了它,但无论我从互联网上得到什么代码,它都是我的头脑。 main
function在这里,我从堆栈溢出。 我尝试过使用它……但它不起作用。 可能是我的坏事。
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加密的步骤如下:
- 将公钥读入
RSA *
结构。 这取决于您的密钥格式。 如果密钥是PEM
格式,请使用PEM_read_RSA_PUBKEY
函数。 如果是DER
forms,请使用d2i_RSA
。 - 使用RSA公钥加密数据。 使用
RSA_public_encrypt
函数。 - 将数据写入文件或任何您想要做的事情。
RSA解密的步骤是:
- 将私钥读入
RSA *
结构。 它类似于RSA加密中的步骤1,但有一些细微差别。 - 使用
RSA_private_decrypt
解密数据。 使用RSA_private_decrypt
。
您可以查看非常有用的OpenSSL文档,其名称很直观。 我给你一个广泛的想法。 如果您需要更多帮助,我可以发布代码示例。