openssl 암호화 예제

enc 프로그램은 특정 매개 변수가 있는 고정된 수의 알고리즘만 지원합니다. 예를 들어 76비트 키가 있는 RC2 또는 84비트 키가 있는 RC4를 사용하려면 이 프로그램을 사용할 수 없습니다. RSA 알고리즘의 작동 방식 때문에 대용량 파일을 암호화할 수 없습니다. n 비트의 키를 만드는 경우 암호화하려는 파일이 (n 빼11) 비트보다 커서는 안됩니다. RSA 암호의 가장 효과적인 사용은 임의로 생성 된 암호를 암호화 한 다음 대칭 암호화를 사용하여 암호로 파일을 암호화하는 것입니다. 파일이 큰 경우 암호화 명령의 키 크기가 실패합니다: OpenSSL 내의 libcrypto 라이브러리는 광범위한 알고리즘 및 모드에서 대칭 암호화 및 암호 해독 작업을 수행하는 기능을 제공합니다. 이 페이지에서는 간단한 암호화 및 해당 암호 해독 작업을 수행하는 기본 사항들을 안내합니다. 암호화 /암호 해독을 수행하려면 알아야 할 사항: 아래 코드는 프로그램을 설정합니다. 이 예제에서는 간단한 메시지(“빠른 갈색 여우가 게으른 개 위로 점프”)를 한 다음 미리 정의된 키와 IV를 사용하여 암호화합니다. 이 예제에서는 키와 IV가 하드 코딩되었습니다 – 실제 상황에서는 이 작업을 수행하지 않을 것입니다! 암호화에 따라 결과 암호 텍스트를 해독하고 (잘하면!) 우리가 처음 시작한 메시지로 끝납니다. 이 프로그램은 “암호화”와 “암호 해독”이라는 두 가지 함수를 정의할 것으로 예상합니다.

우리는 페이지 아래로 더 정의하는 것입니다. 이는 1.1.0의 자동 init 기능을 사용합니다. 이러한 암호 중 일부는 컴파일 타임에 사용하지 않도록 설정할 수 있으며 일부는 구성 파일에 적절한 엔진이 구성된 경우에만 사용할 수 있습니다. 지원되지 않는 옵션(예: openssl enc -help)을 통해 실행되는 enc 명령의 출력에는 구성된 엔진에서 제공하는 것을 포함하여 OpenSSL의 구절에서 지원하는 암호 목록이 포함됩니다. 이 프로그램은 256 비트 키와 128 비트 IV를 설정합니다. 이는 CBC 모드에서 수행하려는 256비트 AES 암호화에 적합합니다. 선택한 암호에 적합한 키와 IV 길이를 사용하거나 끔찍하게 잘못 되었는지 확인하십시오!! IV는 CBC 모드에 대해 임의여야 합니다. 암호화 전이나 암호 해독 후 zlib를 사용하여 일반 텍스트를 압축하거나 압축 해제합니다. 이 옵션은 zlib 또는 zlib 동적 옵션으로 컴파일된 OpenSSL인 경우에만 존재합니다.

다음은 코드가 어떻게 생겼는지: openssl enc-aes-256-cbc -d -in /Users/huntert/Desktop/IMPT.dmg 입력 aes-256-cbc 암호화 암호: 확인 – aes-256-cbc 암호화 암호를 입력합니다: 자세한 내용 대칭 암호화 및 암호 해독 작업은 OpenSSL 설명서 설명서:EVP_EncryptInit(3)을 참조하십시오. 이 작은 자습서에서는 openssl 명령줄을 사용하여 공개 키를 사용하여 파일을 암호화하고 해독하는 방법을 보여 줍니다. 먼저 임의키를 생성하고, 다른 사람의 공개 키에 대해 임의의 키를 암호화하고, 그 임의의 키를 사용하여 대칭 암호화를 사용하여 실제 파일을 암호화합니다. CBC 모드에서 AES 암호를 사용하여 파일을 일부.secret 암호화합니다. 결과는 Base64 인코딩되어 some.secret.enc에 기록됩니다. OpenSSL은 키뿐만 아니라 초기화 벡터를 파생하는 데 사용되는 암호를 요청합니다. 암호화가 기본값이므로 -e 옵션을 사용할 필요는 없습니다. OpenSSL은 파일 및 메시지 암호화에 사용할 수 있는 강력한 암호화 도구 키트입니다.

암호화 키를 파생할 때 암호에 지정된 횟수의 반복을 사용합니다. 값이 높음으로 인해 파일을 강제로 강제로 강제화하는 데 필요한 시간이 늘어나오게 됩니다. 이 옵션을 사용하면 PBKDF2 알고리즘을 사용하여 키를 파생할 수 있습니다. base64는 데이터를 처리합니다. 즉, 암호화가 이루어지는 경우 데이터는 암호화 후 base64로 인코딩됩니다. 암호 해독이 설정되면 입력 데이터는 해독되기 전에 base64디코딩됩니다. PKCS 패딩은 암호화된 데이터의 총 길이를 블록 크기의 배수로 만들기 위해 n 패딩 바이트의 값 n을 추가하여 작동합니다. 데이터가 이미 블록 크기 n의 배수인 경우 블록 크기와 같을 수 있도록 항상 패딩이 추가됩니다.