简单xor加解密

以下是一段在JSP页面里的加密代码,原理是获取sessionid,然后随机取得一位,与原字符串进行xor运算,然后把加密结果进行base64编码,和随机取得的字符一起传送。

     String uid=request.getRemoteUser();
     class EncUtil{
    public String encrypt(String src,byte k) {
     byte[] b=src.getBytes();
     if (k==0) k=(byte)0xE3;
     for (int i=0;i<b.length;i++) {
      b[i] ^= k;
     }
     return new sun.misc.BASE64Encoder().encode(b);
    }     
     };      
     java.util.Random r=new java.util.Random();
     int random=r.nextInt(254);
     EncUtil eu=new EncUtil();
     uid=eu.encrypt(uid,(byte)random);

下一个页面在取得这个加密串后,首先进行base64解码,然后与随机数进行xor运算,获得原始字符串。

   String userid = request.getParameter("uid");
   int key = Integer.parseInt(request.getParameter("key"));
   byte k = (byte)key;
   class DesUtil {   
    public String decrypt(String src,byte k) throws Exception {
     byte[] b = new sun.misc.BASE64Decoder().decodeBuffer(src);
     if (k==0) k = (byte)0xE3;
     for (int j=0;j<b.length;j++) {
      b[j] ^= k ;
     }   
     return new String(b);
    } 
   };      
   DesUtil du = new DesUtil();
   userid = du.decrypt(userid,k); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值