PGP - Ruby on Rails로 파일 암호화/복호화(3부)

이전 두 게시물에서 우리는 다음을 보았습니다.



  • 이 튜토리얼에서는 Ruby on Rails에서 GPGME gem을 사용하여 암호화하고 해독하는 방법을 설명합니다.

    요약


  • GPGME는 암호화, 암호 해독, 서명, 서명 확인 및 키 관리를 제공합니다
  • .
  • GPGME gem으로 데이터 암호화
  • GPGME gem으로 데이터 해독

  • Ruby gem GPGME(GnuPG Made Easy)는 애플리케이션에서 GnuPG에 더 쉽게 액세스할 수 있도록 설계된 라이브러리입니다. GPGME는 암호화, 암호 해독, 서명, 서명 확인 및 키 관리를 위한 고급 암호화 API를 제공합니다.

    GPGME gem으로 데이터 암호화


  • 가져온 수신자의 공개 키가 있어야 합니다.

  • crypto = GPGME::Crypto.new
    GPGME::Key.import(File.open('recipient_public_key.pgp'))
    


  • 암호화할 파일 또는 데이터 읽기

  • plaintext = GPGME::Data.new(File.open('file.csv'))
    
    #Our file contains following data:
    #last_name, name, mobile_phone\nSmith,Chris,3336985726
    


  • 다음 옵션을 사용하여 데이터를 암호화합니다.
  • 수신자: 어떤 수신자를 위해 이 파일을 암호화하시겠습니까?
  • 서명: 참이어야 하며 결합된 서명 및 암호화 작업을 수행합니다.
  • 서명자: 암호화 파일의 발신자입니다.


  • options = { sign: true, signers: '[email protected]', recipients: '[email protected]' }
    data = crypto.encrypt plaintext, options
    


  • gpg 확장자로 암호화된 파일을 만들고 저장합니다.

  • f = File.open('encrypted_file.gpg', 'wb')
    bytes_written = f.write(data)
    f.close
    


    이제 이 이름encrypted_file.gpg을 가진 파일이 있고 받는 사람에게 S3, SFTP 등으로 보낼 수 있습니다.

    GPGME gem으로 데이터 복호화


  • 가져온 수신자의 개인 키가 있어야 합니다.

  • crypto = GPGME::Crypto.new
    GPGME::Key.import(File.open('recipient_private_key.pgp'))
    


  • 암호화된 파일의 데이터 인스턴스 읽기 및 생성

  • cipthertext = GPGME::Data.new(File.open('encrypted_file.gpg'))
    


  • 데이터 암호 해독 및 인쇄

  • data = crypto.decrypt cipthertext, {}
    puts data
    #last_name, name, mobile_phone\nSmith,Chris,3336985726
    

    좋은 웹페이지 즐겨찾기