荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (清风浮云 人生), 信区: Security
标  题: [转载] openssl简介--指令enc(转寄)
发信站: BBS 荔园晨风站 (Mon Nov 13 10:12:39 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: xgh (小丙), 信区: Security
标  题: openssl简介--指令enc
发信站: BBS 水木清华站 (Sun Nov 12 17:08:36 2000)

引用请指明原作/译者 fordesign@21cn.com

---------------------------------------------------------------------------
                                 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


--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.38.248.1]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店