2009-11-13 96 views
1

如何編寫序列號生成器,爲某些現有軟件生成序列號?如何創建序列號發生器?

+1

你在找什麼樣的序列號? 1234,1235,1236或234XK-773A -...,還是別的? – jac 2009-11-13 23:17:27

+0

你的意思是你想爲其他人創建的受版權保護的程序生成序列號? – RCProgramming 2010-11-16 01:15:57

回答

3

您沒有聲明任何具體要求,但可以使用GUID。

Guid mySerialNumber = Guid.NewGuid(); 
+0

我的意思是,如果我有一個需要串行解鎖的軟件,所以我想知道如何編寫一個爲該軟件生成連續數據的程序。 沒有任何特定的軟件,只爲知道和challanging沒有任何回教:) – nir 2009-11-13 23:21:12

+4

好吧,從你對「軟件」的默默無聞,我不得不說,你正冒險進入非法的邊界。如果您確實在尋找教育信息......人們通常會通過拆分應用程序來構建關鍵生成器,以反向驗證或生成連續劇的過程。有時甚至必須查看機器代碼或程序集才能瞭解它是如何完成的。 – 2009-11-13 23:25:35

+0

我如何達到彙編代碼? 它假設在軟件文件中沒有? ,並很難學習閱讀大會?:) – nir 2009-11-13 23:28:43

3

我的時候已經需要我做的項目,我最近處理的同樣的事情之前已經使用這個CodeProject Article。我發現它非常詳細,雖然我沒有使用樣本中的所有內容,但我確實從中得到了很多。 (我沒有隸屬於CodeProject或作者)

另外還有一個庫,它可以爲你提供所有這些功能,包括許可證文件替換和其他功能堆,但它不是免費的,不幸的是我不記得了鏈接。我相信有一些Googgling,你會找到它。

1

嘗試一些你可以測試使用Luhn's algorithm。這樣,你可以使它變得難以理解,但仍然很容易確認。該文章包含一個C#實現的鏈接。

2
public static string GetSerialKeyAlphaNumaric(SNKeyLength keyLength) 
{ 
    string newSerialNumber = ""; 
    string SerialNumber=Guid.NewGuid().ToString("N").Substring(0, (int)keyLength).ToUpper(); 
    for(int iCount=0; iCount < (int) keyLength ;iCount +=4) 
     newSerialNumber = newSerialNumber + SerialNumber.Substring(iCount, 4) + "-"; 
    newSerialNumber = newSerialNumber.Substring(0, newSerialNumber.Length - 1); 
    return newSerialNumber; 
} 
+0

歡迎來到stackoverflow!提供示例代碼的簡短說明總是更好,以提高發布準確性:) – 2012-10-27 00:44:41