我在我的应用程序中实现了序列键功能。用户需要输入至少64位数字才能注册应用程序。因为输入数字如9,223,372,036,854,775,807将需要一段时间我想压缩一下。第一个猜测是编码这个数字十六进制,但它仍然很长(0x7FFF FFFF FFFF FFFF)。.NET - 数字的字母数字表示
在.NET中是否有任何标准方法使用字母数字来编码此数字:例如数字,大写和小写字符?
我在我的应用程序中实现了序列键功能。用户需要输入至少64位数字才能注册应用程序。因为输入数字如9,223,372,036,854,775,807将需要一段时间我想压缩一下。第一个猜测是编码这个数字十六进制,但它仍然很长(0x7FFF FFFF FFFF FFFF)。.NET - 数字的字母数字表示
在.NET中是否有任何标准方法使用字母数字来编码此数字:例如数字,大写和小写字符?
Base 64可能是你想要的。它允许所有的大写和小写字符以及两个符号字符(+和/)
Convert.ToBase64String会将数字转换为字符串。
Convert.FromBase64String将字符串转换回数字。
或者,如果你只想使用大写字母(和数字2-7),那么你可以使用Base32,但是在.net中没有原生的实现。一些更多的信息在这里:Base32 Decoding
它回答了我的问题。谢谢! – kmalmur 2010-06-05 10:59:33
我不知道答案,但我建议你必须小心限制你使用的字符,我可以看到许多用户在阅读时遇到问题,如果它可以是任何'I','l'和'1'等 – 2010-06-05 10:42:41
使其区分大小写也可能是一个坏主意。 – Joren 2010-06-05 10:49:26
我将使用base 32来避免这些问题。 – kmalmur 2010-06-05 11:39:54