2010-06-05 33 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