openssl을 사용하여 여러 문자열을 암호화하고 싶습니다. 일반 텍스트로 입력 파일을 지정하는 대신 콘솔에서 openssl로 일반 텍스트를 전달하려면 어떻게 해야 합니까?
openssl 매뉴얼 페이지에는 다음 두 가지 입력/출력 관련 옵션만 있습니다.
-in <file> input file
-out <file> output file
지금까지 시도한 내용은 다음과 같습니다.
이것은 잘 작동합니다.
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 -in plain.txt -out encrypted.txt
-out 매개변수를 생략하면 콘솔에 암호화된 문자열이 표시됩니다.
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 -in plain.txt
하지만 -in 및 -out을 생략하면 오류가 발생합니다. - Unknown option "encrypt me",
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 "Encrypt ME"
답변1
이것을 사용하십시오 :
user@host:~$ echo "my string to encrypt" | openssl aes-256-cbc -e -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
a7svR6j/uAz4kY9jvWbJaUR/d5QdH5ua/vztLN7u/FE=
user@host:~$ echo "a7svR6j/uAz4kY9jvWbJaUR/d5QdH5ua/vztLN7u/FE=" | openssl aes-256-cbc -d -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
my string to encrypt
또는 명령 대체를 사용할 수 있습니다.
user@host:~$ openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv \
00000000000000000000000000000000 -in <(echo "my string to encrypt") -out encrypted.txt
이러한 플래그는 매뉴얼 페이지에 문서화되어 있습니다 man openssl-enc
.
-a
:base64 처리 데이터입니다. 즉, 암호화된 경우 데이터는 암호화 후 Base64로 인코딩됩니다. 복호화가 설정된 경우 입력 데이터는 복호화 전에 Base64로 디코딩됩니다.-d
: 입력 데이터의 암호를 해독합니다.-e
: 입력 데이터 암호화-K
:실제 사용되는 키: 16진수로만 구성된 문자열로 표현되어야 합니다. 키만 지정한 경우에는 -iv 옵션을 사용하여 IV를 추가로 지정해야 합니다. 키와 비밀번호를 모두 지정한 경우 -K 옵션으로 지정한 키를 사용하고, 비밀번호에서 생성된 IV를 가져옵니다. 키와 비밀번호를 모두 지정하는 것은 아마도 의미가 없을 것입니다.-iv
:사용할 실제 IV: 16진수로만 구성된 문자열로 표현되어야 합니다. -K 옵션을 사용하여 키만 지정하는 경우 IV를 명시적으로 정의해야 합니다. 다른 옵션 중 하나를 사용하여 비밀번호를 지정하면 해당 비밀번호에서 IV가 생성됩니다.
답변2
무엇에 대해
echo encrypt Me | openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
ps에서 "encrypt me"라는 일반 텍스트가 표시되는 것이 걱정된다면 파일을 가지고 앉아서 조심스럽게 삭제하는 것이 좋습니다.
답변3
여러 줄의 입력을 입력하려면 ctrl+ 로 끝나세요 d. e='e'
개인정보 보호를 위해 환경 변수가 삭제됩니다.
e=$(cat); echo "$e" | openssl enc -aes-256-cbc -e -a; e='e'