BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #24476同步于 2013/3/13
Java机器人发帖

【求助】懂vb的进,翻译成java

geniuszty
2013/3/13镜像同步0 回复
注释里是一段反编译的vb代码,看不太懂,想翻译成java没成功,求高手修改 import java.util.Random; public class Cipher { public static void main(String[] args){ DeCipher(Cipher("~DM)DGdt!1Val3#^w")); //System.out.print(Cipher("~DM)DGdt!1Val3#^w")); } //Public Function Cipher(from_text) '11023A80 // 'Data Table: 11006714 // Dim var_BC As Integer // Dim var_9C As Single // Dim var_96 As Integer // loc_1102396F: var_8C = from_text // loc_1102397A: Call Proc_0_49_110202A4("YZJCYSCWWW") // loc_1102398F: var_9C = Rnd(-1) // loc_1102399D: Randomize(var_9C) // loc_110239B2: For var_C0 = 1 To CInt(Len(var_8C)): var_94 = var_C0 'Integer // loc_110239B8: var_BC = 1 // loc_110239E7: If ((Asc(Mid$(var_8C, CLng(var_94), var_BC)) >= &H20) And (Asc(Mid$(var_8C, CLng(var_94), var_BC)) <= &H7E)) Then // loc_110239F0: var_96 = (var_96 - &H20) // loc_11023A1D: var_96 = CInt(((CLng(var_96) + CLng(Int((CDbl(&H60) * Rnd(var_BC))))) Mod &H5F)) // loc_11023A26: var_96 = (var_96 + &H20) // loc_11023A39: var_88 = var_88 & Chr$(CLng(var_96)) // loc_11023A42: Else // loc_11023A5B: MsgBox "输入的符号包含中文,但只能用英文字符,请重新输入!", 0, var_E4, var_104, var_124 // loc_11023A6B: Cipher = var_96 // loc_11023A71: End If // loc_11023A74: Next var_C0 'Integer // loc_11023A79: Cipher = %x1 //End Function //测试用力 //~DM)DGdt!1Val3#^w //~DM)DGdt!1Vab3}^m public static String Cipher(String from_text){ int var_BC; float var_9C; int var_96 = 0; String sOut = ""; int Cipher; String var_8C = from_text; //ProcA("YZJCYSCWWW"); var_9C = (float) Math.random(); for(int i=0; i<var_8C.length() ;i++){ int var_94 = i; var_BC = 1; if(var_8C.getBytes()[i] >= 0x20 && var_8C.getBytes()[i] <=0x7e ){ var_96 = (var_96 - 0x20); var_96 = (int)( (var_96 + (0x60) * Math.random()) % 0x5F); //?? var_96 = (var_96 + 0x20); sOut += (char)var_96; //System.out.print((char)var_96); } else{ System.out.println("输入的符号包含中文,但只能用英文字符,请重新输入"); //return var_96; } //return %x1; //?? } return(sOut); } //Public Sub Proc_0_49_110202A4(arg_C) '110202A4 //'Data Table: 11006714 //Dim var_94 As Long //Dim var_90 As Long //Dim var_98 As Long //Dim var_9C As Long //loc_110201FF: var_8C = arg_C //loc_11020212: For var_A4 = 1 To CInt(Len(var_8C)): var_9E = var_A4 'Integer //loc_11020232: var_94 = CLng(Asc(Mid$(var_8C, CLng(var_9E), 1))) //loc_1102024F: var_90 = var_90 Xor CLng((CDbl(var_94) * (CDbl(2) ^ CDbl(var_98)))) //loc_11020266: var_90 = var_90 Xor CLng((CDbl(var_94) * (CDbl(2) ^ CDbl(var_9C)))) //loc_11020278: var_98 = ((var_98 + 7) Mod &H13) //loc_1102028A: var_9C = ((var_9C + &HD) Mod &H17) //loc_11020290: Next var_A4 'Integer //loc_1102029B: Proc_0_49_110202A4 = var_90 //End Sub public static Long ProcA(String arg_C){ long var_94 = (long)0, var_90 = (long)0, var_98 = (long)0, var_9C = (long)0; String var_8C = arg_C; for (int i=1;i<= var_8C.length(); i++){ int var_9E = i; var_94 = (long)var_8C.getBytes()[var_9E]; var_90 = var_90 ^ (long)(var_94 * Math.pow(2, var_98) ) ; var_90 = var_90 ^ (long)(var_94 * Math.pow(2, var_9C) ) ; var_98 = ((var_98 + 7) % 0x13); var_9C = ((var_9C + 0xD) % 0x17); } return var_90; } //Public Function Decipher(from_text) '11022C80 // 'Data Table: 11006714 // Dim var_BC As Integer // Dim var_9C As Single // Dim var_96 As Integer // loc_11022B8F: var_8C = from_text // loc_11022B9A: Call Proc_0_49_110202A4("YZJCYSCWWW") // loc_11022BAF: var_9C = Rnd(-1) // loc_11022BBD: Randomize(var_9C) // loc_11022BD2: For var_C0 = 1 To CInt(Len(var_8C)): var_94 = var_C0 'Integer // loc_11022BD8: var_BC = 1 // loc_11022C07: If ((Asc(Mid$(var_8C, CLng(var_94), var_BC)) >= &H20) And (Asc(Mid$(var_8C, CLng(var_94), var_BC)) <= &H7E)) Then // loc_11022C10: var_96 = (var_96 - &H20) // loc_11022C46: If (CInt(((CLng(var_96) - CLng(Int((CDbl(&H60) * Rnd(var_BC))))) Mod &H5F)) < 0) Then // loc_11022C4F: var_96 = (var_96 + &H5F) // loc_11022C52: End If // loc_11022C6B: var_88 = var_88 & Chr$(CLng(((var_96 + &H20) + &H20))) // loc_11022C71: End If // loc_11022C74: Next var_C0 'Integer // loc_11022C79: Decipher = %x1 //End Function public static void DeCipher(String input){ int var_BC; float var_9C; int var_96 = 0; String var_8C = input; var_9C = (float) Math.random(); for(int i=0; i<var_8C.length() ;i++){ int var_94 = i; var_BC = 1; if (true){ var_96 = (var_96 - 0x20); if( var_96 < 0x60*Math.random() % 0x5F){ var_96 = (var_96 + 0x5F); } System.out.print((char)var_96); } } } }
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。