2013-03-27 2 views
2

오픈 SSL을 사용하여 RSA 암호화 및 암호 해독의 C 코드를 작성하려고합니다. 그러나 나는 그렇게 할 수 없다. 나는 그것을 봤지만 인터넷에서 얻은 코드는 무엇이든 내 머리에서 go다. main 스택 오버플로에서 함수가 여기에옵니다. 나는 그것을 사용 해봤지만 ... 작동하지 않습니다. 내 잘못일지도 몰라.RSA 암호화를 사용하는 암호 해독

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 암호화를위한

+2

"작동하지 않습니다"는 특히 유용한 문제 설명이 아닙니다. http://www.catb.org/esr/faqs/smart-questions.html –

+0

암호화 기능을 게시하십시오.이 메인()은 우리에게 많이 알려주지 않을 것입니다 ... – Deepu

+0

.. 암호화 부분을 게시 할 것입니다. . 그 작은 빅 .. 그리고 이해할 수없는 .. – geek

답변

4

단계는 다음과 같습니다

  1. RSA * 구조로 공개 키를 읽어보십시오. 키 형식에 따라 다릅니다. 키가 PEM 형식 인 경우 PEM_read_RSA_PUBKEY 기능을 사용하십시오. DER 형식 인 경우 d2i_RSA을 사용하십시오.
  2. RSA 공개 키를 사용하여 데이터를 암호화하십시오.RSA_public_encrypt 기능을 사용하십시오.
  3. 파일이나 원하는대로 데이터를 씁니다. RSA 암호 해독

단계는 다음과 같습니다

  1. RSA * 구조로 개인 키를 읽어보십시오. 이것은 약간의 차이점을 제외하고는 RSA 암호화의 1 단계와 비슷합니다.
  2. RSA_private_decrypt을 사용하여 데이터의 암호를 해독합니다.RSA_private_decrypt을 사용하십시오.

매우 유용하고 그 이름이 직관적 인 OpenSSL 설명서를 볼 수 있습니다. 나는 너에게 폭 넓은 레벨 아이디어를 준다. 도움이 더 필요하면 코드 예제를 게시 할 수 있습니다.

+0

덕분에 dbasic ... :) – geek

+0

RSA_public_encrypt의 맨 페이지에서 전화하기 전에 RNG를 시드해야한다고 말합니다. RAND_seed에 전달할 임의의 임의의 데이터를 가져 오는 중 ... – Michael