des = des + Chr(Asc(Mid(varCode, n * 2 + 1, 1)) Xor (InStr(strKey, Mid(varCode, n * 2 + 2, 1)) - 1))

解决方案 »

  1.   

    Chr(charcode) 函数 返回与指定的 ANSI 字符码相关的字符。
    Asc(string) 函数 返回字符串首字母的 ANSI 字符码。
    Mid(string,start,length) 函数 从字符串中返回指定数量的字符。
    InStr(start,string1,string2,[compare]) 函数 返回一个字符串在另一个字符串中首次出现的位置。应该没有什么问题吧java中巴一个字符转换成为asc就直接把字符强转为int型就行了,转换回来刚好相反
      

  2.   

    试试
     des=des+(char)(varcode.getBytes()[( n * 2 + 1)] ^ strKey.indexOf(varcode.substring(n * 2 + 1,n * 2 + 2)));
      

  3.   

    可能的问题是:
    n*2+1 应改为n*2,同样n*2+2 改为n*2+1
    因为VB的字符串中字符是从1开始的,而java是0开始的