我怎样才能在 shell 中加密字符串?

我怎样才能在 shell 中加密字符串?

我可以在命令提示符下使用公钥加密消息(字符串)吗?此外,我之后如何解密结果?

答案1

另一个选择是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

答案2

如果您已经gpg安装,这是一种工业强度的加密方法。

gpg——加密-r[电子邮件保护]>临时文件

在控制台中输入数据,然后按Ctrl+D结束文本。这将为您提供加密数据tempfile。要解密:

gpg --decrypt <临时文件

您将需要密码来[email protected]解密消息。

答案3

  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
    

答案4

人 crypt(1)

笔记:

crypt 采用了单转子机器,其设计与德国 Enigma 类似,但转子有 256 个。攻击此类机器的方法众所周知,因此 crypt 的安全性很低。

但对于演示目的来说这是可以的。

相关内容