web-dev-qa-db-ja.com

シェルで文字列を暗号化するにはどうすればよいですか?

コマンドプロンプトで公開キーを使用してメッセージ(文字列)を暗号化できますか?また、後で結果を復号化するにはどうすればよいですか?

21
Rajesh

別のオプションは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
29
laalto

gpgをインストールしている場合は、これは強力な暗号化方式です。

gpg --encrypt -r [email protected]> tempfile

コンソールでデータを入力し、 Ctrl+D テキストを終了します。これにより、tempfileの暗号化されたデータが得られます。復号化するには:

gpg --decrypt <tempfile

メッセージを復号化するには、[email protected]のパスフレーズが必要です。

12
Greg Hewgill
  1. 秘密鍵と公開鍵のペアを生成する

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. 公開鍵を使用して文字列を暗号化し、ファイルに保存します

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. 秘密鍵を使用して暗号化を解除する

    $ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
    stockexchange.com
    
6
Kexin Z

man crypt(1)

注:

cryptは、ドイツのエニグマのラインに沿って設計された1ローターマシンを実装していますが、256要素のローターを備えています。このようなマシンに対する攻撃の方法は広く知られているため、cryptは最小限のセキュリティしか提供しません。

ただし、デモンストレーションの目的では問題ありません。

4
Nifle