php tripledes加解密与java一样吗

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Java版适用于PHP版3DES加密解密.doc
下载积分:800
内容提示:Java版适用于PHP版3DES加密解密.doc
文档格式:DOC|
浏览次数:124|
上传日期: 07:58:50|
文档星级:
全文阅读已结束,如果下载本文需要使用
 800 积分
下载此文档
该用户还上传了这些文档
Java版适用于PHP版3DES加密解密.doc
官方公共微信博客访问: 281898
博文数量: 52
博客积分: 6130
博客等级: 准将
技术积分: 470
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 系统运维
&* PHP版3DES加解密类
&* 可与java的3DES(DESede/CBC/PKCS5Padding)加密方式兼容
class Crypt3Des {
&&&&&var $key;
&&&&&var $iv;
&&&&&function Crypt3Des($key, $iv){
&&&&&&&&$this->key = $key;
&&&&&&&&$this->iv = $iv;
&&&&&function encrypt($input){
&&&&&&&&&$size = mcrypt_get_block_size(MCRYPT_3DES,MCRYPT_MODE_CBC);
&&&&&&&&&$input = $this->pkcs5_pad($input, $size);
&&&&&&&&&$key = str_pad($this->key,24,'0');
&&&&&&&&&$td = mcrypt_module_open(MCRYPT_3DES, '', 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);
&&&&&&&&&return $data;
&&&&&function decrypt($encrypted){
&&&&&&&&&$encrypted = base64_decode($encrypted);
&&&&&&&&&$key = str_pad($this->key,24,'0');
&&&&&&&&&$td = mcrypt_module_open(MCRYPT_3DES,'',MCRYPT_MODE_CBC,'');
&&&&&&&&& 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_3DES, MCRYPT_MODE_CBC);
&&&&&&&&&$padding_char = $block_size - (strlen($data) % $block_size);
&&&&&&&&&$data .= str_repeat(chr($padding_char),$padding_char);
&&&&&&&&&return $data;
$des = new Crypt3Des("432","");
echo $ret =
$des->encrypt("sjfalfjaljfajflasjflaf");
阅读(1772) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。DES加密解密java和delphi通用 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 1时,
DES加密解密java和delphi通用DES加密解密java和delphi通用
代码片段(1)
des.rar&~&10KB&&&&
开源中国-程序员在线工具:
学习了……谢谢。
2楼:Mr.CT 发表于
有没有JAVA跟VB通用的DES啊?
3楼: 发表于
可用,不错。
4楼:坦克雷 发表于
5楼:shouyu16 发表于
谢谢!解决了大问题!
开源从代码分享开始
osang的其它代码}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信