Base24編碼一般用於序列號的生成,在Base64編碼的基礎上去掉了特殊字符和容易混淆的字符,如1和l,0和O,Winxp和Office的序列號都是基於此編碼(用25個base 24字符表示114 bits)。其基本原理是使用7個base24字符編碼32bits,7個base24字符的數據范圍是24的7次方也就是4,586,471,424,而32bits的數據范圍是:4,294,967,296。能夠包括所有數據且有一定余量。下面給出C#實現:
1 //文件:Base24Encoding.cs
2 //作者:blueqt
3 //日期:2010-01-17
4 //版本:1.0
5 namespace System.Text
6 {
7 /// <summary>
8 /// 表示 base 24 編碼
9 /// </summary>
10 public class Base24Encoding
11 {
12 /// <summary>
13 /// 表示 base 24 編碼的默認實現使用的字符映射表:BCDFGHJKMPQRTVWXY2346789
14 /// </summary>
15 public const string DefaultMap = "BCDFGHJKMPQRTVWXY2346789";
16
17 private static Base24Encoding defaultInstance;
18
19 private string map;
20
21 /// <summary>
22 /// 默認構造函數
23 /// </summary>
24 public Base24Encoding()
25 {
26 this.map = DefaultMap;
27 }
28
29 /// <summary>
30 /// 獲取 base 24 編碼的默認實現
31 /// </summary>
32&n