日期:2014-05-16 浏览次数:20684 次
1. base64编码/解码 谈到命令行下怎样发送邮件附件,很多人想起了uuencode。也能够使用base64编码。以下是openssl base64编码/解码的使用: $ openssl base64 filename.txt $ openssl base64 -d filename.bin 2. 校验文档的一致性 UNIX下校验文档一致性的方法很多,比如sum、cksum、md5sum、sha1sum等。sum和cksum适用于简单校验的场合,生成的校验码容易重复。md5sum有安全漏洞,当前比较推荐的是sha1sum。但是sha1sum在不同的平台用法有些不同。考虑到跨平台性,建议用openssl。 $ openssl sha1 filename SHA1(filename)= e83a42b9bc8431a6645099be50b6341a35d3dceb $ openssl md5 filename MD5(filename)= 26e9855f8ad6a5906fea121283c729c4 3. 文档加密/解密 OpenSSL支持很多加密算法,但是一些算法只是为了保持向后兼容性,现在已不推荐使用,比如DES和RC4-40。推荐使用的加密算法是bf(Blowfish)和-aes-128-cbc(运行在CBC模式的128位密匙AES加密算法),加密强度有保障。 加密示例: $ openssl enc -aes-128-cbc filename.aes-128-cbc enter aes-128-cbc encryption password: Verifying - enter aes-128-cbc encryption password: 解密示例: $ openssl enc -d -aes-128-cbc -in filename.aes-128-cbc > filename enter aes-128-cbc decryption password: 4. 口令生成和传递 openssl能够生成随机性很强的口令。 $ openssl rand 15 -base64 s69mj+8ToN2p3Z1KESBG 以上命令需要openssl生成15个字节序列,然后用base64编码,结果产生20个字符。 在日常生活中,经常可看到这样的情况:系统管理员配置初始密码给用户,然后让用户登录去修改新密码,这给安全带来了隐患。较好的做法是用户生成口令加密后的结果发给管理员,让管理员配置到系统中。 比如对于以上生成的口令,UNIX口令加密方法如下: $ openssl passwd -1 s69mj+8ToN2p3Z1KESBG $1$Rp/btEwK$qhUGFlsIpDtNT1I9MD/Gg1 管理员收集每个用户交给他的加密后的串,写到一个文档中,比如文档名为newpassword: user_a:$1$Rp/btEwK$qhUGFlsIpDtNT1I9MD/Gg1 user_b:$1$zmUy5lry$aG45DkcaJwM/GNlpBLTDy0 ... 一个用户一行,用户名和密码之间用冒号分隔。 系统管理员运行如下命令导入用户密码: $ chpasswd --encrypted 对于老UNIX系统,生成口令密码无需参数-1,比如: $ openssl passwd s69mj+8ToN2p3Z1KESBG Warning: truncating password to 8 characters FS4lGulQ915WU 假如passwd命令后没有接口令,openssl会提示输入一个: $ openssl passwd -1 Password: Verifying - Password: $1$jACBc0.C$KR5DcpttXQoKfDiapyvav0 |