<?php /** * PHP版DES加解密类 * 可与java的DES(DESede/CBC/PKCS5Padding)加密方式兼容 * */ class CryptDes { var $key; var $iv; function CryptDes($key, $iv){ $this->key = $key; $this->iv = $iv; } function encrypt($input){ $size = mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_CBC); //3DES加密将MCRYPT_DES改为MCRYPT_3DES $input = $this->pkcs5_pad($input, $size); //如果采用PaddingPKCS7,请更换成PaddingPKCS7方法。 $key = str_pad($this->key,8,'0'); //3DES加密将8改为24 $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, ''); if( $this->iv == '' ) { $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); } else { $iv = $this->iv; } @mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data);//如需转换二进制可改成 bin2hex 转换 return $data; } function decrypt($encrypted){ $encrypted = base64_decode($encrypted); //如需转换二进制可改成 bin2hex 转换 $key = str_pad($this->key,8,'0'); //3DES加密将8改为24 $td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,'');//3DES加密将MCRYPT_DES改为MCRYPT_3DES if( $this->iv == '' ) { $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); } else { $iv = $this->iv; } $ks = mcrypt_enc_get_key_size($td); @mcrypt_generic_init($td, $key, $iv); $decrypted = mdecrypt_generic($td, $encrypted); mcrypt_generic_deinit($td); mcrypt_module_close($td); $y=$this->pkcs5_unpad($decrypted); return $y; } function pkcs5_pad ($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } function pkcs5_unpad($text){ $pad = ord($text{strlen($text)-1}); if ($pad > strlen($text)) { return false; } if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){ return false; } return substr($text, 0, -1 * $pad); } function PaddingPKCS7($data) { $block_size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);//3DES加密将MCRYPT_DES改为MCRYPT_3DES $padding_char = $block_size - (strlen($data) % $block_size); $data .= str_repeat(chr($padding_char),$padding_char); return $data; } } $des = new CryptDes("12345678","12345678");//(秘钥向量,混淆向量) echo $ret = $des->encrypt("1111");//加密字符串 ?>
相关推荐
本文实例讲述了PHP实现的DES加密解密封装类。分享给大家供大家参考,具体如下: <?php /** * PHP版DES加解密类 * 可与java的DES(DESede/CBC/PKCS5Padding)加密方式兼容 * */ class CryptDes { var $key; var $...
这个压缩包提供的“加密解密处理类”可能是为了简化这个过程,提供了一种封装好的解决方案。它可能包含以下功能: 1. 支持多种加密算法:类库可能会提供对多种加密算法的支持,允许开发者根据需求选择合适的算法。 ...
这个"php des加密类"可能是一个自定义的PHP类,用于实现DES加密和解密功能。以下是对这个主题的详细说明: 1. **DES算法原理**: DES是一种分组密码,它将明文数据分成64位的数据块进行处理,其中包含72个有效位,...
这个压缩包中的“php中加密解密字符串函数类”很可能是这样一个自定义类,它封装了常见的加密解密算法,可能包括AES(高级加密标准)、DES(数据加密标准)或RSA(非对称加密)等。 此类库可能会包含以下几个核心...
这个"PHP加密解密实用类"压缩包提供了一系列工具,帮助开发者更方便地进行数据加密与解密操作,确保信息安全。下面我们将深入探讨PHP加密解密的相关知识点。 1. **加密算法基础** - **MD5**:Message-Digest ...
这个Cryptography单元的亮点在于它将这些加密算法以静态成员的形式封装起来,这意味着开发者无需创建对象实例,直接调用类方法即可使用加密和解密功能。这种设计提高了代码的简洁性和易用性,减少了内存开销,对于...
为了封装这些功能,你可以创建一个自定义的加密解密字符串函数类,如`CryptoManager`,包含`encrypt()`和`decrypt()`方法。这个类可以处理不同的加密算法,并提供统一的接口。类中的关键部分可能包括选择合适的加密...
1. **DES.PHP**:这是一个PHP实现的DES加密类,可能包含了对原始DES算法的封装,允许PHP开发者轻松调用。 2. **DemoCrypt.dpr**:这是Delphi项目的主要入口文件,通常包含项目的启动代码和主窗体定义。 3. **des.js*...
这里所说的DES类,通常是指在PHP中通过面向对象的方式封装好的DES加密解密方法。在早期版本的PHP中,DES加密解密往往依赖于mcrypt扩展,然而,从PHP 7.1.0开始,mcrypt扩展不再推荐使用,在PHP 7.2.0版本中被完全...
在Java中,AES的实现通常依赖于`javax.crypto`包中的类,如`Cipher`用于执行加密和解密操作,`SecretKeySpec`用于创建密钥,以及`KeySpec`接口来处理不同的密钥规范。Java的AES实现遵循Java Cryptography Extension ...
以十六进制字符显示密文,中文亦可实现,(GUI界面类及加密解密实现类)
在这里,Java编写的3DES加密解密模块被封装到JAR中,然后在易语言中通过调用Java的JNI(Java Native Interface)接口来使用这些功能。 JNI是Java平台提供的一种机制,它允许Java代码和其他语言写的代码进行交互。...
RSA加密解密工具可以在线进行公钥加密和私钥解密操作,而文字在线加密解密工具支持多种算法(AES、DES、RC4等)进行加密和解密。散列算法加密工具则提供了多种散列算法,如MD5、SHA-1、SHA-256等,供用户使用。 4. ...
encrypt.lib.php是这个加密库的主要源代码文件,它可能封装了各种加密和解密操作,以及密钥管理、随机数生成、哈希计算等相关功能。开发者可以通过引用这个文件,然后调用其提供的类和方法来实现加密和解密。 在...
8. **加密解密处理类**:这类类实现了各种加密算法,如AES、DES、RSA等,用于保护敏感数据的安全,确保信息传输的保密性。 9. **文件上传类**:文件上传类处理单个或多个文件的上传,通常包括错误检查、文件类型...
mcrypt扩展是PHP中用于加密和解密数据的一个重要工具,它支持对称加密算法,如DES、3DES、AES等,以及一些非对称加密算法。这些算法的安全性较高,能够有效地防止未经授权的数据访问。 在压缩包文件"pcrypt_0.0.3-...
Mcrypt是PHP的一个加密模块,提供了多种加密算法和模式,如AES、DES、3DES等。它提供了一个易于使用的API,允许开发者方便地进行加密和解密操作。然而,由于Mcrypt不再得到维护,存在安全风险,因此推荐使用更为现代...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...