求助 一段java程序 希望能帮助翻译一下

taamei 2009-12-20 09:26:32
package org.jfree.xml.util;

import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;

import javax.crypto.spec.PBEParameterSpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;


public class TestJava
{

//会员密码加密
public static String getEncryptString(String s)
{
String s1;
BASE64Encoder BASE64Encoder = new BASE64Encoder();
s1 = BASE64Encoder.encode(n.a()._mthnew(s.getBytes()));
return s1;

}
//会员密码解密
public static String getDecryptString(String s)throws Exception

{
String s1;
BASE64Decoder BASE64Decoder = new BASE64Decoder();
s1 = new String(n.a()._mthif(BASE64Decoder.decodeBuffer(s)));
return s1;

}
//用户名身份证解密
public static String ec(String s)throws Exception
{

byte _fldint[] = { -87, -101, -56, 50, 86, 53, -29, 3};
String Key="123!@#qweQWE/.,?><abc";
PBEParameterSpec pbeparameterspec = new PBEParameterSpec(_fldint,19);
PBEKeySpec pbekeyspec = new PBEKeySpec(Key.toCharArray());
SecretKeyFactory secretkeyfactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
javax.crypto.SecretKey secretkey = secretkeyfactory.generateSecret(pbekeyspec);
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(Cipher.ENCRYPT_MODE, secretkey, pbeparameterspec);
byte abyte1[] = s.getBytes("UTF8");
byte abyte2[] = cipher.doFinal(abyte1);
BASE64Encoder BASE64Encoder = new BASE64Encoder();
return BASE64Encoder.encode(abyte2);



}

//用户名身份证解密
public static String ed(String s)throws Exception
{

String Key="123!@#qweQWE/.,?><abc";
byte _fldint[] = { -87, -101, -56, 50, 86, 53, -29, 3};
BASE64Decoder BASE64Decoder = new BASE64Decoder();
byte abyte9[] = BASE64Decoder.decodeBuffer(s);

PBEParameterSpec pbeparameterspec = new PBEParameterSpec(_fldint,19);
PBEKeySpec pbekeyspec = new PBEKeySpec(Key.toCharArray());
SecretKeyFactory secretkeyfactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
javax.crypto.SecretKey secretkey = secretkeyfactory.generateSecret(pbekeyspec);
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(2, secretkey, pbeparameterspec);
byte abyte2[] = cipher.doFinal(abyte9);
return new String(abyte2, "UTF8");

}



public static void main(String args[]) throws Exception
{
String CID="颜海福";
String S1="123456";

//会员密码加解密
System.out.println("会员密码加密(a.dll):"+S1+"="+ getEncryptString(S1));
System.out.println("会员密码解密(a.dll):ETLCw4cN="+ getDecryptString("ETLCw4cN"));

//用户名/身份证加解密
System.out.println(CID+"会员姓名加密:"+ ec(CID));
System.out.println("会员姓名解密:"+ ed("zjRKUPythm4nf8HgiBvQlQ=="));
System.out.println("Pubwin2007加密算法研究QQ群号:76191863,QQ:4869911");

System.exit(0);

}

//



}


需要写一个小程序 能转移会员的资料
需要读出会员的密码
找到人家写的一段java的程序
但是我看不懂

我只会vb 对java一点都不懂
哪位大哥大姐能帮我翻译一下啊

我先知道这个加密算法
然后我用vb来写出来

看到里面好像要调用一个a.dll

希望得到你们的帮助
万分感谢

...全文
174 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangwansheng 2009-12-22
  • 打赏
  • 举报
回复
字符集不统一吧。
taamei 2009-12-22
  • 打赏
  • 举报
回复
能将这两句语句给翻译一下吗
用白话翻译也可以啊
BASE64Decoder BASE64Decoder = new BASE64Decoder();
s1 = new String(n.a()._mthif(BASE64Decoder.decodeBuffer(s)));

字符串 “ ETLCw4cN ” 用java得到的结果是 123456

用其他语言经过base64编码以后的结果是 2旅?

不知道问题到底出在哪里

boboo_2000_0 2009-12-21
  • 打赏
  • 举报
回复
楼主只要把会员密码代入getEncryptString进行解密即可,解密算法用的是Java本身写好的64位算法,楼主只要找到64位VB解密算法即可。
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2009-12-20 09:26
社区公告
暂无公告