명령 프롬프트에서 공개 키를 사용하여 메시지 (문자열)를 암호화 할 수 있습니까? 또한 나중에 결과를 어떻게 해독 할 수 있습니까?
명령 프롬프트에서 공개 키를 사용하여 메시지 (문자열)를 암호화 할 수 있습니까? 또한 나중에 결과를 어떻게 해독 할 수 있습니까?
답변:
다른 옵션은 openssl
다음과 같습니다.
# generate a 2048-bit RSA key and store it in key.txt
openssl genrsa -out key.txt 2048
# encrypt "hello world" using the RSA key in key.txt
echo "hello world" | openssl rsautl -inkey key.txt -encrypt >output.bin
# decrypt the message and output to stdout
openssl rsautl -inkey key.txt -decrypt <output.bin
이 경우 gpg
설치, 이것은 업계 최강의 암호화 방법입니다.
gpg --encrypt -r recipient@example.com> tempfile
콘솔에서 데이터를 입력하고를 눌러 Ctrl+D텍스트를 종료하십시오. 그러면에 암호화 된 데이터가 제공됩니다 tempfile
. 해독하려면
gpg --detemp <tempfile
recipient@example.com
메시지를 해독하려면 암호가 필요합니다 .
gpg --encrypt -r recipient@example.com >tempfile gpg: error retrieving 'recipient@example.com' via WKD: No data gpg: recipient@example.com: skipped: No data gpg: [stdin]: encryption failed: No data
(나는 맥에있다)
개인 / 공개 키 쌍 생성
$ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
공개 키를 사용하여 문자열을 암호화하고 파일에 저장
$ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
개인 키를 사용하여 암호화 해제
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com