捕风之巢

统计

留言簿(3)

java友情链接

阅读排行榜

评论排行榜

openssl简介(十二)--指令enc

 

十二     指令 enc

用法:
   
    openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e]
   
    [-d] [-a] [-k password] [-kfile filename] [-K key] [-iv IV] [-p]
   
    [-P] [-bufsize number] [-debug]
   
        
   
说明:
   
对称加密算法工具。它能够把数据用不同对称加密算法来加 / 解密。还能够把加密 / 接密 , 还可以把结果进行 base64 编码。
   
    OPTIONS
    -in filename
   
要加密 / 解密的输入文件,缺省为标准输入。
    -out filename
   
要加密 / 解密的输出文件,缺省为标准输出。
    -pass arg
   
输入文件如果有密码保护,在这里输入密码。
    -salt
   
为了和 openssl0.9.5 以后的版本兼容,必须 set 这个 option.salt 大概又是密码学里的一个术语,具体是做什么的我也没弄的很明白。就 我的理解 , 这是加密过后放在密码最前面的一段字符串 , 用途也是为了让破解更难 . 如果理解错了 , 请密码学高手指正 .
    -nosalt
   
想和 openssl0.9.5 以前的版本兼容,就 set 这个 option
    -e
   
一个缺省会 set option, 把输入数据加密。
    -d
   
解密输入数据。
    -a
   
base64 编码处理数据。 set 了这个 option 表示在加密之后的数据还要用 base64 编码捏一次,解密之前则先用 base64 编码解码。
    -k password
   
一个过时了的项,为了和以前版本兼容。现在用 -key 代替了。
    -kfile filename
   
同上,被 passin 代替。
    -K key
   
16 进制表示的密码。
    -iv IV
   
作用完全同上。
    -p
   
打印出使用的密码。
    -P
   
作用同上,但打印完之后马上退出。
    -bufsize number
   
设置 I/O 操作的缓冲区大小
    -debug
   
打印调试信息。
   
注意事项:
    0.9.5
以后的版本,使用这个指令, -salt 是必须被 set 的。否则很容易用字典攻击法破你的密码,流加密算法也容易被破。 ( 加密算法中有块加密算法 和流加密算法俩种,块加密算法是一次加密固定长度的数据,一般是 8Bytes, 流加密算法则加密大量数据 ) 。为什么我也弄不清楚。研究加密算法实在麻烦,也不是我们程序员的责任本指令可以用不同加密算法,那么哪些好,哪些坏呢?如果 你使用不当,高强度的加密算法也变脆弱了。一般推荐新手门使用 des3-cbc
   
   
本指令支持的加密算法
    base64 Base 64
    bf-cbc Blowfish in CBC mode
   
     bf Alias for bf-cbc
   
     bf-cfb Blowfish in CFB mode
   
     bf-ecb Blowfish in ECB mode
   
     bf-ofb Blowfish in OFB mode
   
     
   
     cast-cbc CAST in CBC mode
   
     cast Alias for cast-cbc
   
     cast5-cbc CAST5 in CBC mode
   
     cast5-cfb CAST5 in CFB mode
   
     cast5-ecb CAST5 in ECB mode
   
     cast5-ofb CAST5 in OFB mode
    des-cbc DES in CBC mode
   
     des Alias for des-cbc
   
     des-cfb DES in CBC mode
   
     des-ofb DES in OFB mode
   
     des-ecb DES in ECB mode
   
         
     des-ede-cbc Two key triple DES EDE in CBC mode
   
     des-ede Alias for des-ede
   
     des-ede-cfb Two key triple DES EDE in CFB mode
   
     des-ede-ofb Two key triple DES EDE in OFB mode
   
   
   
     des-ede3-cbc Three key triple DES EDE in CBC mode
   
     des-ede3 Alias for des-ede3-cbc
   
     des3 Alias for des-ede3-cbc
   
     des-ede3-cfb Three key triple DES EDE CFB mode
   
     des-ede3-ofb Three key triple DES EDE in OFB mode
   
      desx DESX algorithm.
   
      idea-cbc IDEA algorithm in CBC mode
   
     idea same as idea-cbc
   
     idea-cfb IDEA in CFB mode
   
     idea-ecb IDEA in ECB mode
   
     idea-ofb IDEA in OFB mode
   
     
   
     rc2-cbc 128 bit RC2 in CBC mode
   
     rc2 Alias for rc2-cbc
   
     rc2-cfb 128 bit RC2 in CBC mode
   
     rc2-ecb 128 bit RC2 in CBC mode
   
     rc2-ofb 128 bit RC2 in CBC mode
   
     rc2-64-cbc 64 bit RC2 in CBC mode
   
     rc2-40-cbc 40 bit RC2 in CBC mode
   
         
     rc4 128 bit RC4
   
     rc4-64 64 bit RC4
   
     rc4-40 40 bit RC4
   
         
     rc5-cbc RC5 cipher in CBC mode
   
     rc5 Alias for rc5-cbc
   
     rc5-cfb RC5 cipher in CBC mode
   
     rc5-ecb RC5 cipher in CBC mode
   
     rc5-ofb RC5 cipher in CBC mode
   
   
大家可能看到 DES 都分 des-ecb, des-cbc, des-cfb 这些。简单解释一下。
    ecb
就是说每来 8bytes, 就加密 8bytes 送出去。各个不同的数据块之间没有任何联系。 cbc cfb 则每次加密一个 8bytes 的时候都和上一个 8bytes 加密的结果有一个运算法则。各个数据块之间是有联系的。
   
举例时间:
   
把某二进制文件转换成 base64 编码方式:
    openssl base64 -in file.bin -out file.b64
   
把某 base64 编码文件转换成二进制文件。
    openssl base64 -d -in file.b64 -out file.bin
   
把某文件用 DES-CBC 方式加密。加密过程中会提示你输入保护密码。
   
     openssl des3 -salt -in file.txt -out file.des3
   
解密该文件, 密码通过 -k 来输入
    openssl des3 -d -salt -in file.des3 -out file.txt -k mypassword
   
加密某文件,并且把加密结果进行 base64 编码。用 bf+cbc 算法加密
    openssl bf -a -salt -in file.txt -out file.bf
   
先用 base64 解码某文件,再解密
    openssl bf -d -salt -a -in file.bf -out file.txt

posted on 2006-10-17 15:33 捕风 阅读(799) 评论(0)  编辑  收藏 所属分类: java安全


只有注册用户登录后才能发表评论。


网站导航: