Licensing实例(三)

    技术2022-05-11  27

    继前篇: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;            }        }    }

    最新回复(0)