Openssl이 바이너리 암호 문구를 매개변수로 전달합니다.

Openssl이 바이너리 암호 문구를 매개변수로 전달합니다.

openssl명령은 나에게 잘 작동합니다.

openssl aes-128-ecb -d -in encrypted_base64.txt -K 4D1D75237C31E7732030C69F209F23154418373335E049C4F567C7B6D422ABD0 -base64

비밀번호 파일을 사용하여 동일한 작업을 어떻게 수행할 수 있나요? 나는 이것을하려고 노력하고 있습니다 :

openssl aes-128-ecb -d -in encrypted_base64.txt -pass file:data_key_plaintext.bin -base64

작업 명령이 포함된 bad magic number.byte 를 얻습니다 . 예를 들어data_key_plaintext.bin-K

> hexdump data_key_plaintext.bin
0000000 4d 1d 75 23 7c 31 e7 73 20 30 c6 9f 20 9f 23 15
0000010 44 18 37 33 35 e0 49 c4 f5 67 c7 b6 d4 22 ab d0
0000020

이것openssl 문서설명하다

file:pathname - 경로 이름의 첫 번째 줄은 비밀번호입니다.

이것이 바이너리 암호 문구에 어떻게 적용됩니까?

답변1

지정된 비밀번호가 -pass지정된 실제 암호화 키와 다릅니다 -K. openssl은 해시 함수를 사용하여 비밀번호를 처리하여 특정 비트 길이의 실제 키를 파생시킵니다. 따라서 암호는 일반적으로 인쇄 가능한 문자만 사용하는 짧고 기억하기 쉬운 문자열입니다.

실제 키, IV 및 salt를 보면 이를 수행할 수 있습니다 -P. 키는 128비트 키 길이로 잘립니다 aes-128-ecb. 또한 참고하시기 바랍니다-ecb모델약하고 일반적인 사용에는 적합하지 않습니다.

$ openssl aes-128-ecb -P -K 4D1D75237C31E7732030C69F209F23154418373335E049C4F567C7B6D422ABD0
salt=EA7B538100000000
key=4D1D75237C31E7732030C69F209F2315
$ openssl aes-256-cbc -P -pass pass:secret
salt=332A7608A01A609A
key=1B27C46F481CFA793C665EEFC3C5B6867735CD326840C598AA6EBCCA5829D066
iv =CE223BAEDAA625C02A397D3E1FCE8E75

~에 따르면수동 -K파일 입력은 지원되지 않습니다. 다음과 같이 하고 싶을 수도 있습니다:

openssl aes-128-ecb -d -in encrypted_base64.txt -K $(hexdump -v -e '"%02X"' data_key_plaintext.bin) -base64

관련 정보