PHP与.NET一致的DES(CBC)算法
来源:互联网 发布:js正则获取标签属性值 编辑:程序博客网 时间:2024/06/07 04:11
class CryptDes
{
var $key;
function CryptDes($key)
{
$this->key = $key;
}
function idtag_des_decode($encrypted)
{
$encrypted = base64_decode($encrypted);
$td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,''); //使用MCRYPT_DES算法,cbc模式
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
mcrypt_generic_init($td, $this->key, $this->key); //初始处理
$decrypted = mdecrypt_generic($td, $encrypted); //解密
mcrypt_generic_deinit($td); //结束
mcrypt_module_close($td);
$y=$this->pkcs5_unpad($decrypted);
return $y;
}
function idtag_des_encode($text)
{
$y=$this->pkcs5_pad($text);
$this->key = str_pad($this->key,8,'0');
$td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,''); //使用MCRYPT_DES算法,cbc模式
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
mcrypt_generic_init($td, $this->key, $this->key); //初始处理
$encrypted = mcrypt_generic($td, $y); //解密
mcrypt_generic_deinit($td); //结束
mcrypt_module_close($td);
return base64_encode($encrypted);
}
function pkcs5_pad($text,$block=8)
{
$pad = $block - (strlen($text) % $block);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text)
{
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text)) return $text;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return $text;
return substr($text, 0, -1 * $pad);
}
}
- PHP与.NET一致的DES(CBC)算法
- php和c#一致的DES加密解密算法类
- DES CBC模式加密算法php与java互通
- PHP基于标准的CBC模式的DES加密算法
- java和.net相互http请求并且经过des的cbc模式加密解密(转)
- Javascript与java相同的3des加密(使用etdesede/CBC/PKCS5Padding )
- php实现和c#一致的DES加密解密 (php中调用方法)
- DES加密算法Delphi与C#互通(CBC加密模式)
- 3DES、DES的CBC、ECB
- php实现和c#一致的DES加密解密
- ECB CBC DES TDES 算法原理
- DES CBC
- C#与JAVA的DES加密结果一致的参数设置
- java和.net相互http请求并且经过des的cbc模式加密解密
- OpenSSL EVP_des_ede3_cbc CBC方式的3个密钥的3DES算法 加密解密
- OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果相同
- des加密中c的算法和java算法一致的实现
- php实现 DES/CBC/PCCS5padding 加解密模式
- C# ListView用法详解
- 初识nginx负载均衡
- java 中反射机制的总结
- sql语句中判断 case when的用法
- 工厂模式、构造函数模式、原型模式范例
- PHP与.NET一致的DES(CBC)算法
- 终端模拟软件xshell设置编码方式UTF-8
- vc6.0中warning C4786:identifier was truncated to '255' characters in the debug information的原因及解决办法
- 自动升级系统OAUS
- Python从入门到精通 目录树
- 程序员到高级程序员,只需要10个步骤!
- 理解openstack网络
- 7种形式的Android Dialog使用举例
- casperjs小结