OpenSSL命令行

2019-04-14 08:52发布

 enc命令用来访问对称密码,此外还可以用密码的名字作为命令来访问。除了加解密,base64可作为命令或者enc命令选项对数据进行base64编码/解码。
 当你指定口令后,命令行工具会把口令和一个8字节的salt(随机生成的)进行组合,然后计算MD5 hash值。这个hash值被切分成两部分:加密钥匙(key)和初始化向量(initialization vector)。当然加密钥匙和初始化向量也可以手工指定,但是不推荐那样,因为容易出错。
例子:
用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin
openssl enc -des3 -pass pass:trousers -salt -in plaintext.doc -out ciphertext.bin
解密
openssl enc -des3 -d -pass pass:trousers -in ciphertext.bin -out ptd.doc genrsa命令生成新的RSA私匙,推荐的私匙长度为1024位,不建议低于该值或者高于2048位。缺省情况下私匙不被加密,但是可用DES、3DES或者IDEA加密。
产生1024位RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem
openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024 用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private key为RSA算法产生的文件rsaprivate.pem
openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt
用sha1算法验证file.txt的数字签名rsasign.bin,验证的public key为RSA算法生成的rsapublic.pem
openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt
(参考O'Reilly-Network Security with OpenSSL)
(openssl的man中文文档:http://blog.csdn.net/zdslua/archive/2006/03/18/628432.aspx)