목차
- 파이썬 사용자에게 파일 경로 입력받기 input 함수 예제 이전 포스팅 참고 학습
- 파이썬 파일 쓰고 읽기 read, write 예제 이전 포스팅 참고 학습
- C, C++ Openssl 라이브러리 활용 RSA 개인키, 공개키 생성 예제 이전 포스팅 참고 학습
- 파이썬 공개키, 개인키 생성 및 화면 출력 예제(pycryptodome Crypto)
- 파이썬 생성된 공개키, 개인키를 사용자에게 입력받은 파일 경로에 저장 예제
파이썬 사용자에게 파일 경로 입력받기 input 함수 예제 이전 포스팅 참고 학습
이전 포스팅에서는 사용자로부터 파일 경로를 입력받는 방법에 대해 배웠습니다. input 함수를 사용하여 사용자에게 경로를 입력받고, 이를 변수에 저장하여 프로그램에서 활용하는 방법을 자세히 알아보았습니다.
오늘 포스팅에서는 RSA 키 쌍을 만들고 나온 개인키, 공개키를 파일에 저장할 수 있도록 파일 경로를 입력받는 예제를 작성해보겠습니다.
아직 사용자로부터 입력받는 input에 대해 잘 모르신다면 아래 링크를 참고하여 학습해주세요.
2023.08.18 - [Python] - [Python] 파이썬 사용자에게 입력받기 예제(input)
파이썬 파일 쓰고 읽기 read, write 예제 이전 포스팅 참고 학습
이전 포스팅에서는 파일을 쓰고 읽는 기본적인 작업에 대해 알아보았습니다. 파일을 열어서 내용을 쓰는 방법과 읽는 방법을 실제 코드와 함께 자세한 예제가 포함되어있습니다. 파일 입출력 모드와 파일 객체를 다루는 방법을 학습하여 RSA 키를 파일로 관리하는 방법에 대해 알아보겠습니다.
이를 위해 파일 관련 API 사용법을 모르신다면 아래 링크를 참고해주세요.
2023.08.18 - [Python] - [Python] 파이썬 파일 복사하기 예제(read, write)
C, C++ Openssl 라이브러리 활용 RSA 개인키, 공개키 생성 예제 이전 포스팅 참고 학습
이전 포스팅에서는 C와 C++ 언어를 사용하여 Openssl 라이브러리를 활용하여 RSA 개인키와 공개키를 생성하는 방법을 다루었습니다. RSA 암호화의 기본 개념과 라이브러리 활용법을 학습하고, 이를 통해 보안 관련 작업을 수행하는 방법을 배웠습니다.
혹시 C언어에서의 RSA 키 생성 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.07.31 - [C] - [C/C++] Openssl 활용 RSA 공개키 및 개인키 생성 예제
파이썬 공개키, 개인키 생성 및 화면 출력 예제(pycryptodome Crypto)
이번 포스팅에서는 파이썬 언어를 사용하여 RSA 암호화에 필요한 공개키와 개인키를 생성하는 방법을 배우겠습니다. 아래는 pycryptodome의 Crypto 라이브러리를 사용하여 키를 생성하고 화면에 출력하는 예제입니다. 예제를 위해서는 pip install 명령으로 pycryptodome를 설치하면 됩니다.
from Crypto.PublicKey import RSA
# RSA 키 길이 설정 (보안 수준에 따라 조절 가능)
key_length = 2048
# RSA 키 쌍 생성
key_pair = RSA.generate(key_length)
# 공개키와 개인키 추출
public_key = key_pair.publickey().export_key().decode('utf-8')
private_key = key_pair.export_key().decode('utf-8')
# 생성된 공개키와 개인키 출력
print("공개키:")
print(public_key)
print("\n개인키:")
print(private_key)
파이썬 생성된 공개키, 개인키를 사용자에게 입력받은 파일 경로에 저장 예제
이전에 생성한 공개키와 개인키를 사용자로부터 입력받은 파일 경로에 저장하는 방법을 다루겠습니다. 암호화와 보안에서 중요한 개인키와 공개키를 파일에 저장하는 예제입니다.
from Crypto.PublicKey import RSA
def generate_and_save_keys(file_prefix):
key = RSA.generate(2048)
private_key = key.export_key()
with open(f"{file_prefix}_private_key.pem", "wb") as private_key_file:
private_key_file.write(private_key)
public_key = key.publickey().export_key()
with open(f"{file_prefix}_public_key.pem", "wb") as public_key_file:
public_key_file.write(public_key)
print("Keys generated and saved successfully.")
file_prefix = input("Enter a file prefix for the keys: ")
generate_and_save_keys(file_prefix)