openssl加密、解密
时间: 2023-07-05 10:21:24 浏览: 139
OpenSSL是一个开源的加密库,它提供了许多加密算法和协议,如对称加密算法、非对称加密算法、数字签名、证书管理等。下面简单介绍一下如何使用OpenSSL进行加密与解密。
1. 对称加密
对称加密算法使用相同的密钥进行加密和解密,加密和解密速度快,但密钥需要安全地传输。
加密:
```
openssl enc -aes-256-cbc -in plaintext.txt -out ciphertext.bin
```
解密:
```
openssl enc -d -aes-256-cbc -in ciphertext.bin -out plaintext.txt
```
其中,`-aes-256-cbc`表示使用AES-256算法和CBC模式进行加密,`-in`和`-out`表示输入和输出文件,`-d`表示解密。
2. 非对称加密
非对称加密算法使用公钥加密、私钥解密,或者私钥加密、公钥解密。公钥可以公开,私钥需要保密。
生成公私钥:
```
openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -pubout -out public.pem
```
加密:
```
openssl rsautl -encrypt -in plaintext.txt -inkey public.pem -pubin -out ciphertext.bin
```
解密:
```
openssl rsautl -decrypt -in ciphertext.bin -inkey private.pem -out plaintext.txt
```
其中,`-inkey`指定密钥文件,`-pubin`表示公钥格式输入,`-encrypt`和`-decrypt`表示加密和解密。
3. 数字签名
数字签名使用私钥签名,公钥验证签名。它可以保证消息的完整性和来源,但不能保证消息的保密性。
生成签名:
```
openssl dgst -sha256 -sign private.pem -out signature.bin plaintext.txt
```
验证签名:
```
openssl dgst -sha256 -verify public.pem -signature signature.bin plaintext.txt
```
其中,`-sign`和`-verify`表示签名和验证,`-signature`指定签名文件。
以上是OpenSSL加密与解密的简单介绍,更多用法可以参考OpenSSL文档。
阅读全文