喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: [原创] 实现PHP与JSP之间加密通讯  
 
font
论坛元老
Rank: 8Rank: 8
初级会员


UID 43400
精华 0
积分 36361
帖子 260
金钱 36361 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2004-11-1
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
实现PHP与JSP之间加密通讯

其实在PHP与JSP之间,可能有些朋友在没有PASSPORT的情况下,可能会碰到需要判断登陆问题,当然解决的办法有很多,按照不同的需求,我这里主要是设计了一个简单的.使用JAVABEAN去封装.需要的朋友可以随意使用.

双方都有一个公钥,都可以实现加密解密.

<?php
$data 
"我操";
echo 
substr($data,1,1);
exit;
$key "wotmd";

function 
keytao($txt,$encrypt_key)
{
    
$encrypt_key md5($encrypt_key);
    
$ctr=0;
    
$tmp "";
    
    for (
$i=0;$i<strlen($txt);$i++)
    {
        if (
$ctr==strlen($encrypt_key)) $ctr=0;
        
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
        
$ctr++;
    }
    
    return 
$tmp;
}


function 
EncodeTao($txt,$key)
{
    
    
$encrypt_key md5($key);

    for (
$i=0;$i<strlen($txt);$i++)
    {
        if (
$ctr==strlen($encrypt_key)) $ctr=0;

        
$tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));

        
$ctr++;
    }

    return 
keytao($tmp,$key);

}

function 
DecodeTao($txt,$key)
{

    
$txt keytao($txt,$key);

    
$tmp "";

    for (
$i=0;$i<strlen($txt);$i++)
    {
        
$md5 substr($txt,$i,1);
        
$i++;
        
$tmp.= (substr($txt,$i,1) ^ $md5);
    }
    return 
$tmp;
}



echo 
$tt base64_encode(EncodeTao($data,$key));
echo 
"<Br>";
echo 
DecodeTao(base64_decode($tt),$key);
?>
javabean代码

<?php
package com
.woyao.security;

import com.woyao.global.*;
import java.io.*;

public class 
taotao {
    
    public 
void taotao()
    {
        
//init~
    
}
    
    public 
String keyTao(String txt1,String encrypt_key,boolean re)
    {
        
MD5 m = new MD5();
        
encrypt_key m.getMD5ofStr(encrypt_key);
        
String txt="";
        try{
            
txt = new String(txt1.getBytes("ISO_8859_1"));
        }
        catch(
UnsupportedEncodingException e)
        {
            
System.out.println(e.getMessage());
        }
        
        if (
re==true)
        {
        
txt txt.replaceAll("f","");
        
txt txt.replaceAll("r","");
        
txt txt.replaceAll("n","");
        
txt txt.replaceAll("t","");
        }

        
int ctr 0;
        
String tmp "";
        
        
String t_1 "";
        
char t1[];
        
int t11 0;
        
String t_2 "";
        
char t2[];
        
int t22 0;        
        
        for (
int i txt.length();i++)
        {
            if (
ctr == encrypt_key.length())
                
ctr 0;
                
            
t_1 txt.substring(i,i+1);
            
t1 t_1.toCharArray();
            
t11 = (int)t1[0];
            
            
t_2 encrypt_key.substring(ctr,ctr+1);
            
t2 t_2.toCharArray();
            
t22 = (int)t2[0];

            
int char_temp t11 t22;
            
            
char char_t = (char)char_temp

            
String char_temp2 String.valueOf(char_t);            
            
            if (
t_1.compareTo("")==1)
            {
                
tmp tmp char_temp2;
            }
            
ctr++;
        }

        return 
tmp;
    }

    public 
String EncodeTao(String txt,String key)
    {
        
//加密~
        
MD5 m = new MD5();
        
String skey m.getMD5ofStr(key);
        
        
String tmp "";
        
        
String t_1 "";
        
        
int t11 0;
        
char t1[];
        
String t_2 "";
        
        
int t22 0;        
        
char t2[];
        
int crt 0;
        
int i 0;
        

        
        for (
i=0;i<txt.length();i++)
        {
                
            if (
crt == skey.length())
                
crt 0;
            
            
t_1 txt.substring(i,i+1);
            
t1 t_1.toCharArray();
            
t11 = (int)t1[0];
            
            
t_2 skey.substring(crt,crt+1);            
            
t2 t_2.toCharArray();
            
t22 = (int)t2[0];
            
            
int char_temp t11 t22;
            
            
char char_t = (char)char_temp

            
String char_temp2 String.valueOf(char_t);

            
tmp tmp + (t_2 char_temp2);

            
//System.out.println(tmp);        
            
crt++;
            
        }
        
base64 b = new base64();
        
tmp b.getBASE64(tmp);
        return 
keyTao(tmp,key,true);
        
    }
    
    public 
String DecodeTao(String txt,String key)
    {
                
        
txt keyTao(txt,key,false);
        
        
txt txt.replaceAll("f","");
        
txt txt.replaceAll("r","");
        
txt txt.replaceAll("n","");
        
txt txt.replaceAll("t","");        
        
        
        
        
base64 b = new base64();
        
txt b.getFromBASE64(txt);
        
        
        
String tmp "";
        
        
        
String t_1 "";
        
char t1[];
        
int t11 0;
        
        
char t2[];
        
int t22 0;        
        
        
String md5 "";
        
        for (
int i 0;txt.length();i++)
        {
            
            
md5 =txt.substring(i,i+1);
            
i++;
            
            
t_1 txt.substring(i,i+1);
            
t1 t_1.toCharArray();
            
t11 = (int)t1[0];
            
            
t2 md5.toCharArray();
            
t22 = (int)t2[0];
            
            
int char_temp t11 t22;
            
            
char char_t = (char)char_temp

            
String char_temp2 String.valueOf(char_t);            
            
            
tmp tmp char_temp2;
        }
        
        return 
tmp;
    }
    
    

    
    public static 
void main (String args[])
    {
        
taotao tt = new taotao();
        
        
String da "test|||123456|||1158295786";
        
String key "9okmnji8654";

        

        
base64 b = new base64();
        
        
da b.getBASE64(da);
        
//System.out.println(da);
        
String ee b.getBASE64(tt.EncodeTao(da,key));
        
System.out.println(ee);
        
ee ee.replaceAll("f","");
        
ee ee.replaceAll("r","");
        
ee ee.replaceAll("n","");
        
ee ee.replaceAll("t","");        


        try{
        
String FileName "c:\text.txt";
        
File myFile=new File(FileName);
        
myFile.createNewFile();
        
FileWriter fw = new FileWriter(FileName);
        
fw.write(ee);
        
fw.close();
        }
        catch(
Exception e)
        {
            
        
        }

        
String deString b.getFromBASE64(ee);


        
System.out.println(b.getFromBASE64(tt.DecodeTao(deString,key)));


        
    }
    
    
    
}
?>
[ 本帖最后由 font 于 2006-10-10 09:55 AM 编辑 ]




我木有积分我木有 金钱我木有喜悦币我木有威望我木有人脉我木有头衔
2006-10-10 09:50 AM#1
查看资料  访问主页  Blog  发短消息  顶部
 
奶瓶 (NP博士)
版主
Rank: 7Rank: 7Rank: 7
老仙


UID 52707
精华 4
积分 5558
帖子 6228
金钱 5508 喜悦币
威望 50
人脉 0
阅读权限 100
注册 2004-11-22
来自 北大中文系
状态 离线
[广告]: 代充Paypal帐号美元
俺看不懂java地~~




图片包子,注册送100包子!
2006-10-10 10:55 AM#2
查看资料  访问主页  Blog  发短消息  QQ  ICQ 状态  Yahoo!  顶部
 
unspace (未知空间)
版主
Rank: 7Rank: 7Rank: 7
百万富翁


UID 67567
精华 0
积分 48940
帖子 5199
金钱 47841 喜悦币
威望 0
人脉 1099
阅读权限 100
注册 2005-12-28
来自 吉林
状态 离线
[推荐阅读] 求图片点击次数统计代码!在线等,急!


QUOTE:
原帖由 奶瓶 于 2006-10-10 10:55 AM 发表
俺看不懂java地~~
记得你能弄懂的




7月1日起,北京市低保、最低工资标准、失业保险、工伤保险、基本养老金5项社会保障标准均将全部上调。其中,最低工资标准增加70元,提高到800元。
2006-10-10 11:25 AM#3
查看资料  访问主页  Blog  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 昆明锋霆科技有限公司招聘PHP开发人员


QUOTE:
原帖由 奶瓶 于 2006-10-10 10:55 发表
俺看不懂java地~~




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-10-10 07:40 PM#4
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
菜鸟也要有理想
中级会员
Rank: 3Rank: 3
一般会员



UID 65342
精华 0
积分 439
帖子 426
金钱 439 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2005-8-1
状态 离线
[推荐阅读] PHP开发中一共需要注意哪些安全问题和漏洞?
我操。。。。。。
2006-10-11 07:17 AM#5
查看资料  发短消息  顶部
 
andot (andot)
注册会员
Rank: 2
初级会员



UID 68316
精华 0
积分 53
帖子 38
金钱 53 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-27
状态 离线
[推荐阅读] 北京诚、急聘PHP人员
这个用 PHPRPC 很容易实现啊。
2007-1-11 09:00 AM#6
查看资料  访问主页  发短消息  顶部
 
cnlhome
注册会员
Rank: 2
一般会员



UID 30636
精华 0
积分 100
帖子 127
金钱 100 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2004-8-23
状态 离线
[推荐阅读] 郁闷!电信用上了信风宽带非法拉入监控系统
太感谢了,刚好我需要将一些数据传到JAVA上去,而我却不熟悉这东东,太好了!

感谢楼主,我可以继续研究我的PHP了




www.qinggan.net
2007-1-29 05:42 PM#7
查看资料  访问主页  发短消息  QQ  顶部
 
klht (宇宙)
中级会员
Rank: 3Rank: 3


UID 77270
精华 0
积分 427
帖子 1082
金钱 426 喜悦币
威望 0
人脉 1
阅读权限 30
注册 2006-7-30
来自 UN星系
状态 离线
[推荐阅读] 网站反复被黑,如何解决!
好长, 看的云里雾里的.



什么时候才能找到梦寐以求的PHPER工作...
2007-1-30 01:06 PM#8
查看资料  访问主页  Blog  发短消息  顶部
 
菜鸟也要有理想
中级会员
Rank: 3Rank: 3
一般会员



UID 65342
精华 0
积分 439
帖子 426
金钱 439 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2005-8-1
状态 离线
[推荐阅读] php中的管道是怎么回事呀,大侠帮俺一下.


QUOTE:
原帖由 菜鸟也要有理想 于 2006-10-11 07:17 AM 发表
我操。。。。。。
谁改了我的帖子。。。
2007-2-1 02:56 AM#9
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.048053 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP