openSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。对应的命令就是openssl命令,用于加密算法。
**语法格式:** openssl [参数]
**常用参数:**
| -in | 输入 |
| ------ | ------ |
| -out | 输出 |
**参考实例**
用SHA1算法计算文件file.txt的哈西值,输出到stdout:
```
[root@anycode ~]# openssl dgst -sha1 file.txt
```
用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt:
```
[root@anycode ~]# openssl sha1 -out digest.txt file.txt
```
对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin:
```
[root@anycode ~]# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin
```
DES3算法的OFB模式解密文件ciphertext.bin,提供的口令为trousers,输出到文件plaintext.doc:
```
[root@anycode ~]# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers
```
生成1024位DSA参数集,并输出到文件dsaparam.pem:
```
[root@anycode ~]# openssl dsaparam -out dsaparam.pem 1024
```
使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.pem:
```
[root@anycode ~]# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem
```
产生1024位RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem:
```
[root@anycode ~]# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024
```