通过 OpenSSL 加密和解密文件

公钥加密

公钥加密使用两组密钥,称为密钥对。一个是公钥,可以与你想要秘密通信的任何人自由共享。另一个是私钥,应该是一个秘密,永远不会共享。

公钥用于加密。如果某人想与你交流敏感信息,你可以将你的公钥发送给他们,他们可以使用公钥加密消息或文件,然后再将其发送给你。私钥用于解密。解密发件人加密的消息的唯一方法是使用私钥。因此,它们被称为“密钥对”,它们是相互关联的。

如何使用 OpenSSL 加密文件

OpenSSL 是一个了不起的工具,可以执行各种任务,例如加密文件。本文使用安装了 OpenSSL 的 Fedora 计算机。如果你的机器上没有,则可以使用软件包管理器进行安装:


  1. alice $ cat /etc/fedora-release 
  2. Fedora release 33 (Thirty Three) 
  3. alice $ 
  4. alice $ openssl version 
  5. OpenSSL 1.1.1i FIPS  8 Dec 2020 
  6. alice $ 

要探索文件加密和解密,假如有两个用户 Alice 和 Bob,他们想通过使用 OpenSSL 交换加密文件来相互通信。

步骤 :生成密钥对

在加密文件之前,你需要生成密钥对。你还需要一个密码短语passphrase,每当你使用 OpenSSL 时都必须使用该密码短语,因此务必记住它。

Alice 使用以下命令生成她的一组密钥对:


  1. alice $ openssl genrsa -aes128 -out alice_private.pem 1024 

此命令使用 OpenSSL 的 genrsa 命令生成一个 1024 位的公钥/私钥对。这是可以的,因为 RSA 算法是不对称的。它还使用了 aes128 对称密钥算法来加密 Alice 生成的私钥。

输入命令后,OpenSSL 会提示 Alice 输入密码,每次使用密钥时,她都必须输入该密码:


  1. alice $ openssl genrsa -aes128 -out alice_private.pem 1024 
  2. Generating RSA private key, 1024 bit long modulus (2 primes) 
  3. ……….+++++ 
  4. …………………………….+++++ 
  5. e is 65537 (0x010001) 
  6. Enter pass phrase for alice_private.pem: 
  7. Verifying – Enter pass phrase for alice_private.pem: 
  8. alice $ 
  9. alice $ 
  10. alice $ ls -l alice_private.pem 
  11. -rw——-. 1 alice alice 966 Mar 22 17:44 alice_private.pem 
  12. alice $ 
  13. alice $ file alice_private.pem 
  14. alice_private.pem: PEM RSA private key 
  15. alice $ 

Bob 使用相同的步骤来创建他的密钥对:


  1. bob $ openssl genrsa -aes128 -out bob_private.pem 1024 
  2. Generating RSA private key, 1024 bit long modulus (2 primes) 
  3. ………………+++++ 
  4. ……………………….+++++ 
  5. e is 65537 (0x010001) 
  6. Enter pass phrase for bob_private.pem: 
  7. Verifying – Enter pass phrase for bob_private.pem: 
  8. bob $ 
  9. bob $ ls -l bob_private.pem 
  10. -rw——-. 1 bob bob 986 Mar 22 13:48 bob_private.pem 
  11. bob $ 
  12. bob $ file bob_private.pem 
  13. bob_private.pem: PEM RSA private key 
  14. bob $ 

如果你对密钥文件感到好奇,可以打开命令生成的 .pem 文件,但是你会看到屏幕上的一堆文本:


  1. alice $ head alice_private.pem 
  2. —–BEGIN RSA PRIVATE KEY—– 
  3. Proc-Type: 4,ENCRYPTED 
  4. DEK-Info: AES-128-CBC,E26FAC1F143A30632203F09C259200B9 
  5. pdKj8Gm5eeAOF0RHzBx8l1tjmA1HSSvy0RF42bOeb7sEVZtJ6pMnrJ26ouwTQnkL 
  6. JJjUVPPHoKZ7j4QpwzbPGrz/hVeMXVT/y33ZEEA+3nrobwisLKz+Q+C9TVJU3m7M 
  7. /veiBO9xHMGV01YBNeic7MqXBkhIrNZW6pPRfrbjsBMBGSsL8nwJbb3wvHhzPkeM 
  8. e+wtt9S5PWhcnGMj3T+2mtFfW6HWpd8Kdp60z7Nh5mhA9+5aDWREfJhJYzl1zfcv 
  9. Bmxjf2wZ3sFJNty+sQVajYfk6UXMyJIuWgAjnqjw6c3vxQi0KE3NUNZYO93GQgEF 
  10. pyAnN9uGUTBCDYeTwdw8TEzkyaL08FkzLfFbS2N9BDksA3rpI1cxpxRVFr9+jDBz 
  11. alice $ 

要查看密钥的详细信息,可以使用以下 OpenSSL 命令打开 .pem 文件并显示内容。你可能想知道在哪里可以找到另一个配对的密钥,因为这是单个文件。你观察的很细致,获取公钥的方法如下:


【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章