Mcrypt编码函数库:mcrypt_cbc

mcrypt_cbc

使用 CBC 将资料加/解密。

语法: string mcrypt_cbc(int cipher, string key, string data, int mode, string [iv]);

返回值: 字符串

函数种类: 编码处理
&">nbsp;
内容说明

本函数使用 CBC 密码检索本 (cipher block chaining),将资料加密及解密。参数 cipher 为加/解密方式,例如 MCRYPT_TripleDES。参数 key 是密码钥匙,当然要注意保持它的机密性。欲加密或解密的字符串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 是可省略的参数,代表向量初始化 (Initialization vector, IV)。

要使用本函数库要先准备 mcrypt 程序,可以到 ftp://argeas.cs-net.gr/pub/unix/mcrypt下载这个程序 libmcrypt-x.x.tar.gz。同时在编译 PHP 程序时需要加入 --with-mcrypt 的选项,俾使本函数库能顺利运作。
本函数提供的编码方式有 DES、TripleDES、Blowfish (默认值)、3-WAY、SAFER-SK64、SAFER-SK128、TWOFISH、TEA、RC2 及使用 CBC, OFB, CFB, ECB 作为密码检索的 GOST。此外还有 RC6 及 IDEA 等非免费的编码方式。见下面列示为已定义的密码:

MCRYPT_BLOWFISH
MCRYPT_DES
MCRYPT_TripleDES
MCRYPT_ThreeWAY
MCRYPT_GOST
MCRYPT_CRYPT
MCRYPT_DES_COMPAT
MCRYPT_SAFER64
MCRYPT_SAFER128
MCRYPT_CAST128
MCRYPT_TEAN
MCRYPT_RC2
MCRYPT_TWOFISH (mcrypt 2.x 前的版本用)
MCRYPT_TWOFISH128 (mcrypt 2.x 后的版本用)
MCRYPT_TWOFISH192
MCRYPT_TWOFISH256
MCRYPT_RC6
MCRYPT_IDEA

在密码检索本 (cipher) 方面,本函库支持 CBC、OFB、CFB 与 ECB 四种密码检索本。这四种密码检索本的简单叙述如下,更详细的信息请参考 Schneier 所着作的 Applied Cryptography (ISBN: 0-471-11709-9):

ECB (electronic codebook): 适合随机的资料,例如使用另外的密钥。若资料量少且随机时,使用 ECB 较不适合。
CBC (cipher block chaining): 适合文件的加密,安全性较 ECB 好。
CFB (cipher feedback): 适合对位组资料流中的某段独立位组资料 (single bytes) 加密。
OFB (output feedback): 与 CFB 相容,尤其适合在无法忍受错误波及的应用上。
目前 PHP 仍无法对单位 (bit) 的熵值做加密解密的步骤,目前只适合对字符串作密码处理。

在使用 CFB 及 OFB 二种模式时,必须要向量初始化 (Initialization vector, IV),CBC 模式也可以使用向量初始化。向量初始化的值在加解密时必须是独一无二的,同时也要保持相同。当加密后的资料输出时,也可同时输出密码钥匙 (例如存在文件中);或者也可以将向量初始化的值与加密后的资料一起输出。

时间: 2024-08-04 14:22:59

Mcrypt编码函数库:mcrypt_cbc的相关文章

Mcrypt编码函数库:mcrypt_get_cipher_name

mcrypt_get_cipher_http://www.aliyun.com/zixun/aggregation/11696.html">name 取得编码方式的名称. 语法: string mcrypt_get_cipher_name(int cipher); 返回值: 字符串 函数种类: 编码处理 内容说明 本函数用来取得编码方式的名称.返回值为名称字符串,若没有指定的编码方式则返回 false 或输入的名称.  使用范例 下例会输出 TripleDES 字符串. <?php$

Mcrypt编码函数库:mcrypt_ecb

mcrypt_ecb 使用 ECB 将资料加/解密. 语法: string mcrypt_ecb(int cipher, string key, string data, int mode); 返回值: 字符串 函数种类: 编码处理&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;  内容说明 本函数使用 ECB 密码检索本 (electronic codebook),将资料加密及解密.参数 cipher 为加/解密

Mcrypt编码函数库:mcrypt_cfb

mcrypt_cfb 使用 CFB 将资料加/解密. 语法: string mcrypt_cfb(int cipher, string key, string data, int mode, string iv); 返回值: 字符串 函数种类: 编码处理 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;内容说明 本函数使用 CFB 密码检索本 (cipher feedback),将资料加密及解密.参数 cipher

Mcrypt编码函数库:mcrypt_ofb

mcrypt_ofb 使用 OFB 将资料加/解密. 语法: string mcrypt_ofb(int cipher, string key, string data, int mode, string iv); 返回值: 字符串 函数种类: 编码处理 内容说明 本函数使用 OFB 密码检索本 (output feedback),将资料加密及解密.参数 cipher 为加/解密方式,例如 MCRYPT_http://www.aliyun.com/zixun/aggregation/17071.

Mcrypt编码函数库:mcrypt_get_block_size

mcrypt_get_block_size 取得编码方式的区块大小. 语法: int mcrypt_get_block_size(int cipher); 返回值: 整数 函数种类: 编码处理 内容说明 本函数用来取得编码方式的区块大小.参数为编码名称,返回整数.

Mcrypt编码函数库:mcrypt_get_key_size

mcrypt_get_key_size 取得编码钥匙大小. 语法: int mcrypt_get_key_size(int cipher); 返回值: 整数 函数种类: 编码处理 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;内容说明 本函数用来取得编码钥匙的大小.参数为编码名称,返回整数.

Mcrypt编码函数库:mcrypt_create_iv

mcrypt_create_iv 从随机源将向量初始化. 语法: string mcrypt_create_iv(int size, int source); 返回值: 字符串 函数种类: 编码处理 内容说明 本函数用来建立向量初始化 (Initialization vector, IV) 的值.参数 size 为指定的向量初始化.

JS经典源码:通用javascript脚本函数库

javascript|js|函数|脚本 javascript在WEB编程中能起到很大的作用,将一些常用的功能写成javascript类库. 将下面代码保存为Common.js 类库功能: 1.Trim(str)--去除字符串两边的空格 2.XMLEncode(str)--对字符串进行XML编码 3.ShowLabel(str,str)--鼠标提示功能(显示字符,提示字符) 可以设置显示的提示的文字的字体.颜色.大小以及提示的背景颜色.边框等 4.IsEmpty(obj)--验证输入框是否为空 5

php字符串处理函数库

函数|字符串 php字符串处理函数库 AddSlashes 字符串加入斜线. 语法: string addslashes(string str); 返回值: 字符串 函数种类: 资料处理 本函数使需要让数据库处理的字符串,引号的部份加上斜线,以供数据库查询 (query) 能顺利运作.这些会被改的字符包括单引号 (').双引号 (").反斜线 backslash (\) 以及空字符 NUL (the null byte). bin2hex 二进位转成十六进位. 语法: string bin2he