-
-
[旧帖] [求助]java -> VB.Net 0.00雪花
-
发表于: 2009-3-20 12:23 2517
-
各位大大好,小弟有一支從 java -> VB.Net 的 keygen ,程式碼如下但是因為 java 與 VB.Net 語法不同,所以還有些 Bug ,哪位大大可以依高深的功力,幫小弟 Debug 一下,感謝!
Imports System Imports System.Text Public Class MyEclipseGen Private Const LL As String = "Keygen." Public Overridable Function getSerial(ByVal userId As String, ByVal licenseNum As String) As String Dim cal As java.util.Calendar = java.util.Calendar.getInstance() cal.Add(1, 3) cal.Add(6, -1) Dim nf As java.text.NumberFormat = New java.text.DecimalFormat("000") licenseNum = nf.format(Convert.ToInt32(licenseNum)) Dim verTime As String = New StringBuilder("-").Append(New java.text.SimpleDateFormat("yyMMdd").format(cal.getTime())).Append("0").ToString() Dim type As String = "YE3MP-" Dim need As String = New StringBuilder(userId.Substring(0, 1)).Append(type).Append("300").Append(licenseNum).Append(verTime).ToString() Dim dx As String = New StringBuilder(need).Append(LL).Append(userId).ToString() Dim suf As Integer = Me.decode(dx) Dim code As String = New StringBuilder(need).Append(Convert.ToString(suf)).ToString() Return Me.change(code) End Function Private Function decode(ByVal s As String) As Integer Dim i As Integer Dim ac() As Char Dim j As Integer Dim k As Integer i = 0 ac = s.ToCharArray() j = 0 k = ac.Length Do While j < k i = (31 * i) + ac(j) j += 1 Loop Return Math.Abs(i) End Function Private Function change(ByVal s As String) As String Dim abyte0() As SByte Dim ac() As Char Dim i As Integer Dim k As Integer Dim j As Integer abyte0 = s.getBytes() ac = New Char(s.Length - 1){} i = 0 k = abyte0.Length Do While i < k j = abyte0(i) If (j >= 48) AndAlso (j <= 57) Then j = (((j - 48) + 5) Mod 10) + 48 ElseIf (j >= 65) AndAlso (j <= 90) Then j = (((j - 65) + 13) Mod 26) + 65 ElseIf (j >= 97) AndAlso (j <= 122) Then j = (((j - 97) + 13) Mod 26) + 97 End If ac(i) = ChrW(j) i += 1 Loop Return Convert.ToString(ac) End Function Public Sub New() MyBase.New() End Sub Shared Sub Main(ByVal args() As String) Try Console.WriteLine("please input register name:") Dim reader As New BufferedReader(New InputStreamReader(System.in)) Dim userId As String = Nothing userId = reader.readLine() Dim myeclipsegen As New MyEclipseGen() Dim res As String = myeclipsegen.getSerial(userId, "5") Console.WriteLine("Serial:" & res) reader.readLine() Catch ex As IOException End Try End Sub End Class
赞赏
看原图
赞赏
雪币:
留言: