加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#生成注册码

发布时间:2020-12-15 17:56:14 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 using System;using System.Management;using System.Security.Cryptography;using System.IO;using System.Collections.Generic;using System.Text;

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

using System;
using System.Management;
using System.Security.Cryptography;
using System.IO;
using System.Collections.Generic;
using System.Text;
 
namespace xingming_reg
{
    class Program
    {
        static void Main(string[] args)
        {
            bool sucsess = false;
            string computerbit = "";
            regmutou reg = new regmutou();
            computerbit = reg.getcomputerbit("X");
            sucsess = reg.regmutousoft(computerbit,"xinmin","xinmin.usr");
            Console.WriteLine(sucsess);
            Console.ReadLine();
        }
    }
    internal class regmutou
    {
        // Methods
        public string GetBIOSSerialNumber()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");
                string str = "";
                foreach (ManagementObject obj2 in searcher.Get())
                {
                    str = obj2["SerialNumber"].ToString().Trim();
                }
                return str;
            }
            catch
            {
                return "";
            }
        }
 
        public string getcomputerbit(string softname)
        {
            string cpuID = this.GetCpuID();
            string bIOSSerialNumber = this.GetBIOSSerialNumber();
            string hardDiskSerialNumber = this.GetHardDiskSerialNumber();
            string netCardMACAddress = this.GetNetCardMACAddress();
            if (cpuID != "")
            {
                MD5 md = new MD5CryptoServiceProvider();
                cpuID = BitConverter.ToString(md.ComputeHash(Encoding.Default.GetBytes(cpuID))).Replace("-","").ToUpper().Substring(8,0x10);
                return (softname + "C" + cpuID);
            }
            if (bIOSSerialNumber != "")
            {
                MD5 md2 = new MD5CryptoServiceProvider();
                bIOSSerialNumber = BitConverter.ToString(md2.ComputeHash(Encoding.Default.GetBytes(bIOSSerialNumber))).Replace("-",0x10);
                return (softname + "B" + bIOSSerialNumber);
            }
            if (hardDiskSerialNumber != "")
            {
                MD5 md3 = new MD5CryptoServiceProvider();
                hardDiskSerialNumber = BitConverter.ToString(md3.ComputeHash(Encoding.Default.GetBytes(hardDiskSerialNumber))).Replace("-",0x10);
                return (softname + "H" + hardDiskSerialNumber);
            }
            if (netCardMACAddress != "")
            {
                MD5 md4 = new MD5CryptoServiceProvider();
                netCardMACAddress = BitConverter.ToString(md4.ComputeHash(Encoding.Default.GetBytes(netCardMACAddress))).Replace("-",0x10);
                return (softname + "N" + netCardMACAddress);
            }
            return (softname + "WF53A419DB238BBAD");
        }
 
        public string GetCpuID()
        {
            try
            {
                ManagementObjectCollection instances = new ManagementClass("Win32_Processor").GetInstances();
                string str = null;
                foreach (ManagementObject obj2 in instances)
                {
                    str = obj2.Properties["ProcessorId"].Value.ToString();
                    break;
                }
                return str;
            }
            catch
            {
                return "";
            }
        }
 
        public string GetHardDiskSerialNumber()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
                string str = "";
                foreach (ManagementObject obj2 in searcher.Get())
                {
                    str = obj2["SerialNumber"].ToString().Trim();
                    break;
                }
                return str;
            }
            catch
            {
                return "";
            }
        }
 
        public string GetNetCardMACAddress()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
                string str = "";
                foreach (ManagementObject obj2 in searcher.Get())
                {
                    str = obj2["MACAddress"].ToString().Trim();
                }
                return str;
            }
            catch
            {
                return "";
            }
        }
 
        public bool regmutousoft(string computerbit,string softname,string filename)
        {
            bool flag = true;
            string str = "";
            SHA1 sha = new SHA1CryptoServiceProvider();
            str = BitConverter.ToString(sha.ComputeHash(Encoding.Default.GetBytes(softname))).Replace("-","").ToUpper();
            //if (!File.Exists(filename))
            //{
            //    flag = false;
            //    Stream stream = File.Open(filename,FileMode.OpenOrCreate);
            //    StreamWriter writer = new StreamWriter(stream);
            //    writer.WriteLine(computerbit);
            //    writer.Close();
            //    stream.Close();
            //    return flag;
            //}
            //Stream stream2 = File.Open(filename,FileMode.Open);
            //StreamReader reader = new StreamReader(stream2);
            //string str2 = "";
            string str3 = computerbit;
            //while ((str2 = reader.ReadLine()) != null)
            //{
            //    str3 = str2;
            //}
            //reader.Close();
            //stream2.Close();
            //if (str3.Length != 0x18)
            //{
            //    //return false;
            //}
            SHA1 sha2 = new SHA1CryptoServiceProvider();
            string str4 = BitConverter.ToString(sha2.ComputeHash(Encoding.Default.GetBytes(computerbit))).Replace("-","").ToUpper();
            string str5 = "";
            for (int i = 0; i < str4.Length; i++)
            {
                if ((i % 2) == 1)
                {
                    str5 = str5 + str4[i];
                }
            }
            string str6 = "";
            for (int j = 0; j < str.Length; j++)
            {
                if ((j % 2) == 0)
                {
                    str6 = str6 + str[j];
                }
            }
            int[] numArray = new int[20];
            for (int k = 0; k < 20; k++)
            {
                numArray[k] = str6[k] + str5[k];
                numArray[k] = numArray[k] % 0x24;
            }
            string str7 = "";
            for (int m = 0; m < 20; m++)
            {
                if ((m > 0) && ((m % 4) == 0))
                {
                    str7 = str7 + "-";
                }
                str7 = str7 + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[numArray[m]];
            }
            if (str3 == str7)
            {
                flag = true;
            }
            Console.WriteLine("机器码:" + str3);
            Console.WriteLine("注册码:"+str7);
            return flag;
        }
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读