crypto

最后更新:2013-03-30  版本:1.3.2.0330

 

简介

crypto
 - 用强加密算法加、解密指定文件集。
 - 使用散列或校验和算法产生、检查指定文件集的完整性。
  • 支持当今绝大部分对称强加密算法。
  • 可定制的密钥长度,从最低32位到最高的448位。信息安全强度由用户自由选择。
  • 算法库已通过FIPS 140-2美国国家信息处理标准一致性检查,加密算法方面可以保证零漏洞。加密算法是程序设计中比较微妙的领域,一点小错误就会使算法安全性完全丧失。同时加密算法中的错误又不易被发现,所以一个已知为可靠的算法库是很重要的。(插播开源广告:本算法库基于优秀的 Cryptopp 库封装,该库免费开源,功能强大,是居家旅行、出门防被鸟枪打的必备精品……)^_^。
  • 使用迭代安全散列算法变换密钥,增强其安全性,几何级数地增加了字典攻击的难度。
  • 使用 LZ4、ZLIB、BZ2 或 GZIP 算法进行实时数据压缩。有效压缩文件尺寸、成倍增加算法运行速度,同时加强算法抗已知部分密文攻击和语言学分析攻击的能力(后面详细说明原理)。
  • 完整支持当今密码编码学体系中定义的各种块加密模式。
  • 支持批量文件加/解密操作,支持包含子目录。支持同时指定多个文件通配符或文件列表。
  • 同时加密保存文件名和相对路径信息更改结果文件的名称和目录层次结构不会影响解密过程——解密时将在正确的目录层次还原原始文件名。
  • 支持大部分流行的散列及校验和算法。
  • 批量散列值计算和批量验证,生成标准的散列值列表文件,方便与其它工具互动(验证其它工具生成的列表或为其它工具生成验证列表)。
  • 同时支持多个通配符或文件列表,支持子目录。
  • 高效,在所有存在大规模数据移动的地方都实现了零拷贝算法,各个部分都尽可能洗练高效。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

 

更新记录

2013-03-30 (Ver 1.3.2.0330)

  • UPD: 使用 lz4 算法替代 lzo 算法(注意:可能会导致不兼容)。
  • NEW: 新增 SHA3 散列算法支持。

注意:此版本不在支持较早的 lzo 压缩算法,若处理文件时使用了 lzo 算法,则不能混用此版本。

2010-05-21 (Ver 1.3.1.0521)

  • NEW: 新增 bz2 压缩算法支持。
  • NEW: 新增 XSALSA20_128, XSALSA20_256, SSMANUK_128, SSMANUK_192, SSMANUK_256 加密算法支持。
  • NEW: 新增 SHA1, TIGER, RIPEMD160, RIPEMD320, RIPEMD128, RIPEMD256 散列算法。

注意:此版本与较早的版本产生的文件格式不兼容。不能混用。

2007-01-28 (Ver 1.2.0.127)

  • 新增 Safer、Towfish、Serpent 等块加密算法,同时增加 SEAL 3.0、MARC4、Panama、和 Salsa20 等流式加密算法。使用流式加密时,无需设置加密模式选项“-emode:”。

    重点推荐一下 SEAL,IBM 的 160bit 流式加密算法,支持随机访问(Seek),加解密速度奇快无比,比 128bit AES 快 8 倍左右,在 AES128 50MB/s 的机器上,SEAL160_LE 可以到达 400MB/s!安全上当使用同一密钥(密码)连续加密超过 16TB 数据的时候,对抗数据分析攻击的能力会有所下降,不过一来一般也不大会有人用一个密码加密 16T 数据;二来能够对分析得起这么大量数据的组织还不是很多。

    SEAL 的唯一问题是:在美国地区,IBM 持有该算法的专利。so 如果你碰巧在那里,请不要使用。

    Panama 和 Salsa20 的效率也不错,按照前文的比例也能够达到 250多MB/s。Towfish 不用多说了,是当年进入 AES 最终选拔阶段的算法。
     
  • 新增 Panama 和 Whirlpool 两种散列算法。现在从密码编码学角度衡量,尚未发现任何安全问题的散列算法越来越少了,算来算去只有 SHA2(SHA256、384、448、512);Panama 和 Whirlpool 等几种了……

 

关于LZO数据压缩算法

LZO算法简介

LZO算法是非常著名的高效无损压缩算法,由于该算法稳定、出色的表现,被广泛用于各个领域,包括:美国最新的“机遇”号和“勇气”号火星探测器;著名的UPX可执行文件压缩工具等等。

LZO算法的工作效率十分惊人,其压缩时仅需64KB工作空间,解压缩时实现“原地解压”完全不需要任何额外工作空间。在一台内存带宽(memcpy())为 60MB/S 的Pentium 133上,LZO的解压和压缩速度分别达到 20MB/S 和 5MB/S 在压缩率近似的前提下,比 zip、rar 等其它著名压缩算法快很多倍,是实时无损压缩的首选算法。


关于效率

众所周知,强加密算法之所以称之为强加密,刨去所有数学和理论上的东西以外,一个很重要的地方就是它的算法复杂度必须够高。有很多经典攻击方式是跟算法的复杂度直接相关的(这里假设算法本身没有其它缺陷)。

另一个与密码编码学相关的知识:对于给定算法和密钥,要加密的明文越短(可供敌手分析的信息量越少)它就越健壮。

根据以上两条,使用一个接近飞速的压缩算法在加/解密开始前高效地压缩数据,当然是事倍功半的好办法啦。

虽然 lzo 算法这么好,仍然需要显式使用 /lzo 参数才会被启用。这么设计的理由是,本工具的典型用例应当是对已经压缩打包过的文件做加密的,所以默认就开启 lzo 通常有点画蛇添足之嫌。

 

LZ4数据压缩算法简介

lz4 是一款新兴的实时数据压缩算法。 与老牌的 lzo 算法相比,在压缩率基本相当的前提下,lz4 提供了更优的执行效率,具体的测试如下:
  • 易压缩数据:压缩速度比 lzo 快 1%; 解压速度是 lzo 的 3 倍。
  • 普通数据:压缩速度比 lzo 快 20%;解压速度是 lzo 的 2 倍。
  • 难压缩数据:压缩速度是 lzo 的 3倍;解压速度是 lzo 的 2 倍。

以上测试版本为 lz4 r62 vs. lzo 2.06。与此同时,lz4 还提供了比 lzo 更为宽松的许可证。

 

密钥变换和安全性

对于一个足够健壮的算法产生的密文,攻破的唯一方式就是暴力破解。而暴力破解中效率最高也是最常用的方式就是字典攻击。

密钥变换就是利用散列算法的单向性原理,将用户输入的密码经过若干次迭代求散列后再作为密钥使用。这样就可以成几何级数地降低字典攻击的效率。

例如,用户输入的密码为:“password”,密钥变换算法在使用该密码前可以求它的sha散列值(记为结果1),再对结果1求一次sha散列值(结果2)……如此迭代求值10000次后再使用该值(结果10000)作为真正的密钥加密数据。这样,一个使用字典攻击的敌手在尝试字典中的每一个密码时,都必须先对它做10000次sha变换。当迭代次数足够多时,这种方法可以极大地增加字典攻击的难度。

crypto默认使用5000次迭代的sha384算法。对于加密强度要求较高的用户,建议只要使用50万次以上的迭代(使用参数“/iter=500000”)。并且不要使用sha以外的其它散列算法(sha是迄今为止唯一被证明满足密码编码学要求的优质散列算法)。

 

支持的算法

支持的加密算法和可接受的密钥长度:
 
算法 密钥长度
AES 128bit、192bit、256bit
BlowFish 32bit、64bit、96bit、128bit、192bit、256bit、384bit、448bit
IDEA 128bit
MARS 128bit、192bit、256bit、384bit、448bit
DES 56bit
DES-EDE2 128bit
DES-EDE3 192bit
CAST5 40bit、64bit、96bit、128bit
CAST6 128bit、160bit、192bit、224bit、256bit
SAFER-K 64bit、128bit
SAFER-SK 64bit、128bit(SAFER-K 的加强版,修正了其密钥计划攻击弱点)
TwoFish 32bit、64bit、96bit、128bit、192bit、256bit
Serpent 32bit、64bit、96bit、128bit、192bit、256bit
SEAL 160bit(目前最快的对称加密算法,速度 8 倍于 AES128)
MARC4 32bit、64bit、96bit、128bit、192bit、256bit、384bit、448bit、512bit、768bit、1024bit、1536bit、2048bit(RSA RC4 的改进版,去掉了不太安全的前 256 字节头部)
Panama 256bit
Salsa20 128bit、256bit
Salsa20 128bit、256bit
Salsa20 128bit、256bit
Salsa20 128bit、256bit
XSalsa20 128bit、256bit(Seekable)增强了 Salsa20 的不可预测性
Sosemanuk 128bit、192bit、256bit128bit、256bit

■注意■ 以现代密码编码学标准来衡量,密钥长度低于 128bit 的加密是不够安全的。

 

支持的散列和校验和算法:

算法 散列尺寸
CRC32 32bit 4 Bytes
ADLER32 32bit 4 Bytes - 提供与 crc32 相似的质量,但是速度远高于 crc32
MD5 128bit 16Bytes
MD2 128bit 16Bytes
SHA1 160bit 20Bytes
SHA256 256bit 32Bytes
SHA384 384bit 48Bytes
SHA512 512bit 64Bytes
PANAMA (LE/BE) 256bit 32Bytes
Whirlpool 512bit 64Bytes
TIGER 192bit 24Bytes
RIPEMD128 128bit 16Bytes(Unsafe)
RIPEMD256 256bit 32Bytes(Unsafe)
RIPEMD160 160bit 20Bytes
RIPEMD320 320bit 40Bytes
SHA3_224 224bit 28Bytes
SHA3_256 256bit 32Bytes
SHA3_384 384bit 48Bytes
SHA3_512 512bit 64Bytes

 

加密模式

实际上,加密算法只规定了如何加密一组与密钥等长的明文。在真实应用中,待加密的明文尺寸通常远远超过密钥长度。简单地重复使用相同密钥逐段加密所有数据就是简单的电码本(ECB)模式。

电码本模式最大的问题在于,如果明文中出现了一些相同的分组,那么在密文中也会出现几段重复的密文。对于非常结构化的明文,产生的密文中也可能出现相似的结构。这可能使敌手通过一些分析降低其破译难度,当然,上面说过,事先对明文进行压缩编码可以有效降低风险。不过还有更安全的方法。

为了克服这个问题,大师们又发明了很多种加密模式。例如最经典的CBC模式就是把密钥和上一轮的密文异或后,作为本轮密钥传递给加密算法。这样一来即使明文完全由相同的字符组成,生成的密文也将是完全不同的。

crypto支持以下加密模式:
  • CTR
  • CBC
  • CBC_CTS
  • CFB
  • CFB_FIPS
  • OFB
  • ECB

■注意■ 除非有非常明确的理由,否则请使用默认并且推荐使用的 CTR 模式。并忽略本节剩余的说明文字。

下面对以上各模式进行简单介绍:
  ■ 缩写说明 ■ 
    IN    - 输入向量
    OUT   - 输出向量(未用于和明文加密前)
    ENC   - 加密算法
    K     - 加密密钥
    P     - 明文
    C     - 密文
    XOR   - 异或
    <<    - 左移
    BSIZE - 算法的加密块尺寸
    COUNT - 计数器

  CBlockCipher支持如下加密模式:

  ------------------------------------------------------------------------------
  计数器(CTR)模式: IN(N) = ENC(K, COUNT++), C(N) = IN(N) XOR P(N);CTR 模式被
  广泛用于 ATM 网络安全和 IPSec应用中,相对于其它模式而言,CRT模式具有如下特点:

    ■ 硬件效率:允许同时处理多块明文 / 密文。

    ■ 软件效率:允许并行计算,可以很好地利用 CPU 流水等并行技术。

    ■ 预处理: 算法和加密盒的输出不依靠明文和密文的输入,因此如果有足够的保证安
       全的存储器,加密算法将仅仅是一系列异或运算,这将极大地提高吞吐量。

    ■ 随机访问:第 i 块密文的解密不依赖于第 i-1 块密文,提供很高的随机访问能力

    ■ 可证明的安全性:能够证明 CTR 至少和其他模式一样安全(CBC, CFB, OFB, ...)

    ■ 简单性:与其它模式不同,CTR模式仅要求实现加密算法,但不要求实现解密算法。
       对于 AES 等加/解密本质上不同的算法来说,这种简化是巨大的。

    ■ 无填充,可以高效地作为流式加密使用。

  ------------------------------------------------------------------------------
  密文块链接(CBC)模式:IN(N) = P(N) XOR C(N-1), C(N) = ENC(K, IN(N));在 CTR出
  现前广泛使用的块加密模式,用于安全的分组(迭代式)加密和认证。

  ------------------------------------------------------------------------------
  密文反馈 (CFB) 模式:  IN(N) = C(N-1) << (BSIZE-j),  C(N) = ENC(K, IN(N)) <<
  (BSIZE-j) XOR P(N). 其中 j 为每次加密的位数。CFB 模式与 CBC 模式原理相似,但一
  次仅处理 j 位数据,其余 BLOCKSIZE - j 位丢弃。由于以上性质,CFB 模式可以在不损
  失安全性的前提下,将块加密变为流式加密。但是该模式也是比较浪费的,因为在每轮加
  解密中都丢弃了大部分结果(j 通常为一字节(8 位),块加密算法中每块的尺寸通常为
  64、128 或 256 位不等)。

  ------------------------------------------------------------------------------
  输出反馈 (OFB) 模式:IN(N) = OUT(N-1) << (BSIZE-j),  C(N) = ENC(K, IN(N)) << 
  (BSIZE-j) XOR P(N), OUT(N) = ENC(K, IN(N)) << (BSIZE-j). 该模式与 CFB 模式基本
  相同,只不过本次输入是上次迭代中尚未与明文异或时的输出。 与 CFB 模式一样, OFB
  模式也可以作为流加密模式使用,除此之外,由于每次迭代的输入不是上次迭代的密文,
  从而保证了较强的容错能力, 即: 对一块(一字节)密文的传输错误不会影响到后继密
  文。但是,由于输入没有经过密文叠加使得其抗篡改攻击的能力较差,通常需要与消息验
  证算法或数字签名算法配套使用。OFB 通常用于噪音水平较高的通信连接以及一般的流式
  应用中。

  ------------------------------------------------------------------------------
  电码本(ECB)模式: IN(N) = P(N), C(N) = ENC(K, IN(N)). 最简单但最不安全的加密
  方式。每次迭代的输入都使用相同密钥进行无变换的直接加密。对于同样的明文片断,总
  会产生相同的,与之对应的密文段。抗重复统计和结构化分析的能力较差。一次性加密的
  最坏情况 (即:每次输入的明文都小于等于 BSIZE 时) 就是电码本模式。 仅在一次一
  密,或传出极少数据时考虑使用 ECB 模式。

  ------------------------------------------------------------------------------
  此外还支持两种变体:

  CBC_CTS:CBC的密文窃取模式,用于消除结尾填充(算法交换最后两个块),不推荐。

  CFB_FIPS:美国联邦信息处理标准 FIPS 800-38A 中要求的改进变体:要求完整的明文输
  入(非流模式)

 

帮助屏幕

==============================================================================
  crypto algorithm utility Ver 1.3.2.0330 by BaiYang / 2006 - 2013
                            http://baiy.cn
==============================================================================
Encrypt / Decrypt files using strong crypto algorithm; And Calculate / Verify
file's Hash Value

USAGE: crypto  {file patterns} [Options]

==============================================================================
Actions:
  e         - encryption
  d         - decryption
  h         - calculate hash value
  v         - verify file's hash. for this action, the {file patterns} argument
              specify a hash value list file (the output of action h)
  t         - test current machine's password transfer speed
  @         - calculate the deepest parent for the given file patterns.

==============================================================================
Options:
  -pass:    - encryption/decryption's password. DEFAULT: prompt you type it.
  -ealgm:   - specify the encryption algorithm, could be:
                AES128 (DEFAULT)
                AES192
                AES256
                --------------------------------------------------------------
                BLOWFISH32
                BLOWFISH64
                BLOWFISH96
                BLOWFISH128
                BLOWFISH192
                BLOWFISH256
                BLOWFISH384
                BLOWFISH448
                --------------------------------------------------------------
                IDEA128
                --------------------------------------------------------------
                MARS128
                MARS192
                MARS256
                MARS384
                MARS448
                --------------------------------------------------------------
                DES
                DES-EDE2
                DES-EDE3
                --------------------------------------------------------------
                CAST5-40
                CAST5-64
                CAST5-96
                CAST5-128
                CAST6-128
                CAST6-160
                CAST6-192
                CAST6-224
                CAST6-256
                --------------------------------------------------------------
                SAFER_K64
                SAFER_K128
                SAFER_SK64
                SAFER_SK128
                --------------------------------------------------------------
                TWOFISH32
                TWOFISH64
                TWOFISH96
                TWOFISH128
                TWOFISH192
                TWOFISH256
                --------------------------------------------------------------
                SERPENT32
                SERPENT64
                SERPENT96
                SERPENT128
                SERPENT192
                SERPENT256
                ==============================================================
                SEAL160_LE (fastest)
                SEAL160_BE
                --------------------------------------------------------------
                PANAMA_LE
                PANAMA_BE
                --------------------------------------------------------------
                MARC4_32
                MARC4_64
                MARC4_96
                MARC4_128
                MARC4_192
                MARC4_256
                MARC4_384
                MARC4_448
                MARC4_512
                MARC4_768
                MARC4_1024
                MARC4_1536
                MARC4_2048
                --------------------------------------------------------------
                SALSA20_128
                SALSA20_256
                XSALSA20_128
                XSALSA20_256
                --------------------------------------------------------------
                SOSEMANUK_128
                SOSEMANUK_192
                SOSEMANUK_256
                --------------------------------------------------------------
  -emode:   - specify the encryption mode, could be:
                CTR (DEFAULT)
                CBC
                CBC_CTS
                CFB
                CFB_FIPS
                OFB
                ECB (NOT security for large data!)
  -halgm:   - specify the hash algorithm, could be:
                CRC32
                ADLER32
                MD5    (DEFAULT with action h and v)
                MD2
                SHA1
                SHA256
                SHA384 (DEFAULT with action e)
                SHA512
                PANAMA_LE
                PANAMA_BE
                WHIRLPOOL
                TIGER
                RIPEMD160
                RIPEMD320
                RIPEMD128
                RIPEMD256
                SHA3_224
                SHA3_256
                SHA3_384
                SHA3_512
              when performing encryption (action e), this argument
              specify which hasher should be used for the password's
              hash iteration transform.
  -iter:    - specify how many times the password should be transformed
              before use. DEFAULT: 5000
  -s        - include sub-directory.
  -to:      - specify the destination directory. for hash actions, this option
              also specify the root working dir, i.e. it will affect the output
              of the action "h"
                DEFAULT: same as source dir.
  -root:    - alias of "-to". if both this option and "-to" are specified,
              this option will be used (this option overwrite "-to").
  -calgm:   - specify the compress algorithm used in data encryption, could be:
                lz4
                zlib
                gzip
                bz2
                none (DEFAULT: don't use data compression)
  -lz4      - compress file with lz4 algorithm before encrypt it. same as
              "-calgm:lz4".
  -logfile: - using a logfile.
  -loglevel - specify the lowest logging level, could be:
                DebugOnly (Most Detail)
                Info
                Warning (DEFAULT)
                Error
                FatalError
                Disabled (Close Logging Output)
  -force    - ignore the checksum error, forcing generate result file. for
              file decryption only.

==============================================================================
Examples:
  crypto e doc\*.txt doc\*.doc /s /ealgm:AES256 /lz4 /to:EncryptDir /pass:word
  crypto d * /s /to:DecryptDir
  crypto d proj.rar /force
  crypto h * /s > md5.txt
  crypto v md5.txt
  crypto t
  crypto t /halgm:md5
  crypto @ d:\tmp\doc d:\tmp\prj d:\tmp\test

 

简单中文帮助

==============================================================================
  密码学算法工具 版本:1.3.2.0330 by BaiYang / 2006 - 2013
                          http://baiy.cn
==============================================================================
使用强加密算法对文件进行加/解密;计算/验证文件的散列值

用法: crypto <动作> {文件模板(可以有多个)} [选项]

==============================================================================
动作:
  e         - 执行加密
  d         - 进行解密
  h         - 计算散列值
  v         - 验证散列值,这时,{文件模板} 参数用于指定要验证的散列值列表文件
              (列表文件的内容就是“h”动作的输出)
  t         - 测试当前计算机上的密钥变换效率
  @         - 计算给定的文件模板中,最深级的公共父目录

==============================================================================
Options:
  -pass:    - 指定文件加/解密使用的密码,如果未指定,则屏幕提示等待用户输入。
  -ealgm:   - 指定加密算法,可以是:
                AES128 (默认)
                AES192
                AES256
                --------------------------------------------------------------
                BLOWFISH32
                BLOWFISH64
                BLOWFISH96
                BLOWFISH128
                BLOWFISH192
                BLOWFISH256
                BLOWFISH384
                BLOWFISH448
                --------------------------------------------------------------
                IDEA128
                --------------------------------------------------------------
                MARS128
                MARS192
                MARS256
                MARS384
                MARS448
                --------------------------------------------------------------
                DES
                DES-EDE2
                DES-EDE3
                --------------------------------------------------------------
                CAST5-40
                CAST5-64
                CAST5-96
                CAST5-128
                CAST6-128
                CAST6-160
                CAST6-192
                CAST6-224
                CAST6-256
                --------------------------------------------------------------
                SAFER_K64
                SAFER_K128
                SAFER_SK64
                SAFER_SK128
                --------------------------------------------------------------
                TWOFISH32
                TWOFISH64
                TWOFISH96
                TWOFISH128
                TWOFISH192
                TWOFISH256
                --------------------------------------------------------------
                SERPENT32
                SERPENT64
                SERPENT96
                SERPENT128
                SERPENT192
                SERPENT256
                ==============================================================
                SEAL160_LE (最快)
                SEAL160_BE
                --------------------------------------------------------------
                PANAMA_LE (第二快 ;)
                PANAMA_BE
                --------------------------------------------------------------
                MARC4_32
                MARC4_64
                MARC4_96
                MARC4_128
                MARC4_192
                MARC4_256
                MARC4_384
                MARC4_448
                MARC4_512
                MARC4_768
                MARC4_1024
                MARC4_1536
                MARC4_2048
                --------------------------------------------------------------
                SALSA20_128
                SALSA20_256
                XSALSA20_128
                XSALSA20_256
                --------------------------------------------------------------
                SOSEMANUK_128
                SOSEMANUK_192
                SOSEMANUK_256
                --------------------------------------------------------------
  -emode:   - 指定加密模式,可以是:
                CTR (默认)
                CBC
                CBC_CTS
                CFB
                CFB_FIPS
                OFB
                ECB (对稍大的数据而言,使用该模式不够安全!)
  -halgm:   - 指定散列/校验和算法,可以是:
                CRC32
                ADLER32
                MD5    (在执行 h 和 v 动作时的默认算法)
                MD2
                SHA1
                SHA256
                SHA384 (在执行加密时的默认密钥变换算法)
                SHA512
                PANAMA_LE
                PANAMA_BE
                Whirlpool
                TIGER
                RIPEMD160
                RIPEMD320
                RIPEMD128
                RIPEMD256
                SHA3_224
                SHA3_256
                SHA3_384
                SHA3_512
  -iter:    - 指定在加密时进行多少次迭代式密钥变换。默认为:5000次
  -s        - 包含子目录。
  -to:      - 指定加/解密后生成文件的目标目录。对于散列算法,该参数用来指定生成
              或验证文件散列列表时使用的根目录。默认值:与源路径相同。
  -root:    - “-to:”选项的别名,如果与“-to:”选项同时指定,则此选项优先使用。
  -calgm:   - 指定加密数据时使用的压缩算法,可以是:
                lz4
                zlib
                gzip
                bz2
                none (默认值: 不对待加密的数据进行压缩)
  -lz4      - 在开始加密前,先使用 lz4 算法压缩文件内容。与 "-calgm:lz4" 等效。
  -logfile: - 记录日志文件。
  -loglevel - 指定日志文件的详细程度,可以是:
                DebugOnly (最详细)
                Info
                Warning (默认)
                Error
                FatalError
                Disabled (关闭日志输出)
  -force    - 忽略校验和错误,强制生成目标文件。仅对文件解密有效。

==============================================================================
使用示例:
  crypto e doc\*.txt doc\*.doc /s /ealgm:AES256 /lz4 /to:EncryptDir /pass:word
  crypto d * /s /to:DecryptDir
  crypto d proj.rar /force
  crypto h * /s > md5.txt
  crypto v md5.txt
  crypto t
  crypto t /halgm:md5
  crypto @ d:\tmp\doc d:\tmp\prj d:\tmp\test

 

下载

crypto.rar            (Windows/DOS,DOS 下使用需要 HXDOS 环境支持)
crypto_linux_x86.zip  (在 Ubuntu 11.04 上测试通过)
crypto_linux_x64.zip  (在 Ubuntu 11.04 上测试通过)
crypto_freebsd_x64.zip(在 FreeBSD 7.0 上测试通过)
crypto_netbsd_x86.zip (老版本,未更新:在 NetBSD 5.0.1 上测试通过)
crypto_solaris_x86.zip(在 OpenSolaris 2009.06 上测试通过)