2010-06-05 88 views
2

我在我的應用程序中實現了序列鍵功能。用戶需要輸入至少64位數字才能註冊應用程序。因爲輸入數字如9,223,372,036,854,775,807將需要一段時間我想壓縮一下。第一個猜測是編碼這個數字十六進制,但它仍然很長(0x7FFF FFFF FFFF FFFF)。.NET - 數字的字母數字表示

在.NET中是否有任何標準方法使用字母數字來編碼此數字:例如數字,大寫和小寫字符?

+0

我不知道答案,但我建議你必須小心限制你使用的字符,我可以看到許多用戶在閱讀時遇到問題,如果它可以是任何'I','l'和'1'等 – 2010-06-05 10:42:41

+0

使其區分大小寫也可能是一個壞主意。 – Joren 2010-06-05 10:49:26

+0

我將使用base 32來避免這些問題。 – kmalmur 2010-06-05 11:39:54

回答

3

Base 64可能是你想要的。它允許所有的大寫和小寫字符以及兩個符號字符(+和/)

Convert.ToBase64String會將數字轉換爲字符串。
Convert.FromBase64String將字符串轉換回數字。

或者,如果你只想使用大寫字母(和數字2-7),那麼你可以使用Base32,但是在.net中沒有原生的實現。一些更多的信息在這裏:Base32 Decoding

+0

它回答了我的問題。謝謝! – kmalmur 2010-06-05 10:59:33

1

如果你想在你的項目中添加串行密鑰功能,那麼在部署過程中你可以添加串行密鑰。這是.NET添加密鑰的標準方式。創建新的部署項目並添加用戶該項目中的界面編輯器。然後在其中添加客戶信息窗口。然後在它的屬性中,你可以把任何你想要的模式作爲aplha數字或只是數字。這樣做的詳細步驟我在我的博客中提到,你可以參考它from here

+0

不幸的是我正在使用Visual Studio Express。 – kmalmur 2010-06-05 15:33:56

+0

有趣的是,我沒有注意到這個功能。 – 2010-06-05 16:05:04