继前篇:Licensing实例(二)
public class EncryptedLicense : License

...{
private string _key;
private string _productInfo;
private ushort _serialNo;


/**//// <summary>
/// 许可证加密
/// </summary>
/// <param name="key">键值</param>
/// <param name="serialNo">序列号</param>
/// <param name="productInfo">产品信息</param>
public EncryptedLicense(string key, ushort serialNo, string productInfo)

...{
this._key = key;
this._serialNo = serialNo;
this._productInfo = productInfo;
}



/**//// <summary>
/// 检查
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string Checksum(string input)

...{
int num1 = (input == null) ? 0 : EncryptedLicense.HashString(input);
return Math.Abs((int)(num1 % 1000)).ToString();
}


public override void Dispose()

...{
}


/**//// <summary>
/// 哈希
/// </summary>
/// <param name="szStr"></param>
/// <returns></returns>
private static int HashString(string szStr)

...{
int num1 = 5381;
for (int num3 = 0; num3 < szStr.Length; num3++)

...{
int num2 = szStr[num3];
num1 = ((num1 << 5) + num1) ^ num2;
}
return num1;
}


/**//// <summary>
/// 许可证键值
/// </summary>
public override string LicenseKey

...{
get

...{
return this._key;
}
}


/**//// <summary>
/// 产品信息
/// </summary>
public string ProductInfo

...{
get

...{
return this._productInfo;
}
}


/**//// <summary>
/// 序列号
/// </summary>
public ushort SerialNo

...{
get

...{
return this._serialNo;
}
}

}
public class EncryptedLicense : License
...{
private string _key;
private string _productInfo;
private ushort _serialNo;

/**//// <summary>
/// 许可证加密
/// </summary>
/// <param name="key">键值</param>
/// <param name="serialNo">序列号</param>
/// <param name="productInfo">产品信息</param>
public EncryptedLicense(string key, ushort serialNo, string productInfo)
...{
this._key = key;
this._serialNo = serialNo;
this._productInfo = productInfo;
}


/**//// <summary>
/// 检查
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string Checksum(string input)
...{
int num1 = (input == null) ? 0 : EncryptedLicense.HashString(input);
return Math.Abs((int)(num1 % 1000)).ToString();
}

public override void Dispose()
...{
}

/**//// <summary>
/// 哈希
/// </summary>
/// <param name="szStr"></param>
/// <returns></returns>
private static int HashString(string szStr)
...{
int num1 = 5381;
for (int num3 = 0; num3 < szStr.Length; num3++)
...{
int num2 = szStr[num3];
num1 = ((num1 << 5) + num1) ^ num2;
}
return num1;
}

/**//// <summary>
/// 许可证键值
/// </summary>
public override string LicenseKey
...{
get
...{
return this._key;
}
}

/**//// <summary>
/// 产品信息
/// </summary>
public string ProductInfo
...{
get
...{
return this._productInfo;
}
}

/**//// <summary>
/// 序列号
/// </summary>
public ushort SerialNo
...{
get
...{
return this._serialNo;
}
}
}
本文介绍了一种许可证加密的方法,通过使用特定的密钥、序列号和产品信息来生成加密许可证。提供了EncryptedLicense类的具体实现,包括构造函数、获取许可证键值、产品信息及序列号的方法,以及用于验证输入字符串完整性的Checksum静态方法。
1万+

被折叠的 条评论
为什么被折叠?



