内容摘要:enSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。
这里有一个例子:
$ openssl enc -aes-128-cbc < filename > filename.aes-128-cbc
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
与GnuPG一样,OpenSSL要求提供2次密语,并且不会回显到屏幕上。
解密也比GnuPG更复杂一点:
$ openssl enc -d -aes-128-cbc -in filename.aes-128-cbc > filename
enter aes-128-cbc decryption password:
注意例子中的-d参数,它意味着解密。
OpenSSL与GnuPG不一样,不能自动检查文件的类型或者使用了什么算法也不知道、也不清楚加密文件使用的密钥的长度和模式。你需要自己保存一个跟踪记录,在我的例子中,我将这些信息放在文件扩展名里了,OpenSSL不能为你管理文件和文件扩展名,你不得不指出输出数据写入的位置。
如果你没有指定正确的算法,OpenSSL可能输出一堆垃圾信息也可能产生一个看不懂的数字,无论怎样,没有正确的给出选项,你的数据就不能正确地解密。
密语
在我们更进一步之前,我们应该先讨论一下密语的重要性,在大多数加密系统中,密语是保存了其他机密的秘密,它通常是最薄弱的点,因此,创建一个强壮的密语是很重要的,但是这也很困难,除非你有好用的工具,使用OpenSSL你就能快速地创建一个强壮的密语。
一个对密语简单的指导就是长度与优势的比较表,8个字符不够长(表1),目标是创建一个保密性强的而且你又能记住的其他人又不知道的密语,不能靠猜或最后偶尔发现。
表1 密码和密语被破解的估计时间强度比较,注意:破解时间是比较粗糙的。

来源:51CTO 作者:黄永兵 责编:豆豆技术应用
- Django是否已经达到顶峰?
- GitHub:基于Rails的Git库托管
- Java 7的并行支持:Fork/Join
- Daemon Tools自甘堕落 强行驻留用户电脑
- 微软官方密码强度测试工具帮你测试密码是否强悍
- 专家详解Netfilter/iptables FAQ
- 史上最牛的三大病毒结局大盘点
- 黑客眼中的OpenSSL:强大的密码工具
- CISSP的成长之路(二十三):逻辑访问控制方案
- CISSP的成长之路(二十二):用户的生物特征