您好,欢迎访问一九零五行业门户网

PHP DES加密中与C#/ActionScript/Java互操作的算法

搜索des加密 不一致 好像能搜索到很多。 差异一般产生在加密方式,而且是你没指定的加密方式,或者zeroiv初始向量,填充模式等等,你不指定,各个程序和库处理的方式就会不一样,这就是产生差异的原因。 以php的mcrypt_cbc函数为例 string mcrypt_cbc ( stri
搜索des加密 不一致 好像能搜索到很多。
差异一般产生在加密方式,而且是你没指定的加密方式,或者zeroiv初始向量,填充模式等等,你不指定,各个程序和库处理的方式就会不一样,这就是产生差异的原因。
以php的mcrypt_cbc函数为例
string mcrypt_cbc ( string $cipher , string $key , string $data , int $mode [, string $iv ] )
cbc是工作模式,des一共有电子密码本模式(ecb)、加密分组链接模式(cbc)、加密反馈模式(cfb)和输出反馈模式(ofb)四种模式,
在使用 cfb 及 ofb 二种模式时,必须要向量初始化 (initialization vector, iv),cbc 模式也可以使用向量初始化。向量初始化的值在加解密时必须是独一无二的,同时也要保持相同。当加密后的资料输出时,也可同时输出密码钥匙 (例如存在文件中);或者也可以将向量初始化的值与加密后的资料一起输出。
目前php支持的cipher有
mcrypt_3des
mcrypt_arcfour_iv (libmcrypt > 2.4.x only)
mcrypt_arcfour (libmcrypt > 2.4.x only)
mcrypt_blowfish
mcrypt_cast_128
mcrypt_cast_256
mcrypt_crypt
mcrypt_des
mcrypt_des_compat (libmcrypt 2.2.x only)
mcrypt_enigma (libmcrypt > 2.4.x only, alias for mcrypt_crypt)
mcrypt_gost
mcrypt_idea (non-free)
mcrypt_loki97 (libmcrypt > 2.4.x only)
mcrypt_mars (libmcrypt > 2.4.x only, non-free)
mcrypt_panama (libmcrypt > 2.4.x only)
mcrypt_rijndael_128 (libmcrypt > 2.4.x only)
mcrypt_rijndael_192 (libmcrypt > 2.4.x only)
mcrypt_rijndael_256 (libmcrypt > 2.4.x only)
mcrypt_rc2
mcrypt_rc4 (libmcrypt 2.2.x only)
mcrypt_rc6 (libmcrypt > 2.4.x only)
mcrypt_rc6_128 (libmcrypt 2.2.x only)
mcrypt_rc6_192 (libmcrypt 2.2.x only)
mcrypt_rc6_256 (libmcrypt 2.2.x only)
mcrypt_safer64
mcrypt_safer128
mcrypt_saferplus (libmcrypt > 2.4.x only)
mcrypt_serpent(libmcrypt > 2.4.x only)
mcrypt_serpent_128 (libmcrypt 2.2.x only)
mcrypt_serpent_192 (libmcrypt 2.2.x only)
mcrypt_serpent_256 (libmcrypt 2.2.x only)
mcrypt_skipjack (libmcrypt > 2.4.x only)
mcrypt_tean (libmcrypt 2.2.x only)
mcrypt_threeway
mcrypt_tripledes (libmcrypt > 2.4.x only)
mcrypt_twofish (for older mcrypt 2.x versions, or mcrypt > 2.4.x )
mcrypt_twofish128 (twofishxxx are available in newer 2.x versions, but not in the 2.4.x versions)
mcrypt_twofish192
mcrypt_twofish256
mcrypt_wake (libmcrypt > 2.4.x only)
mcrypt_xtea (libmcrypt > 2.4.x only)
其中pkcs5填充php就不支持,这里有个实现方法 http://www.php.net/manual/zh/ref.mcrypt.php#69782
c#版本的算法默认一搜索一大堆 ,这里就不再贴了。
php相关的代码 可以看我的这个gitcafe
原文地址:php des加密中与c#/actionscript/java互操作的算法, 感谢原作者分享。
其它类似信息

推荐信息