zoukankan      html  css  js  c++  java
  • C#软件注册码相关(我做的小程序)

    这是一个自己做的关于C#软件注册码小程序的代码(略去了窗体代码)

     

    下图是小程序截图

     

     

    using System;

    using System.Drawing;

    using System.Collections;

    using System.ComponentModel;

    using System.Windows.Forms;

    using System.Data;

    using System.Configuration;

    using System.IO;

    using System.Security.Cryptography;

    using System.Management;

     

     

     

     

     

     

     

     

     

    namespace Messagebox

    {

        /// <summary>

        /// Form1 的摘要说明。

        /// </summary>

        public class Form1 : System.Windows.Forms.Form

        {

            private System.Windows.Forms.Button button1;

            private System.Windows.Forms.TextBox textBox1;

            private Button button2;

            private Button button3;

            private Button button4;

            /// <summary>

            /// 必需的设计器变量。

            /// </summary>

            private System.ComponentModel.Container components = null;

     

            public Form1()

            {

                //

                // Windows 窗体设计器支持所必需的

                //

                InitializeComponent();

     

                //

                // TODO: 在InitializeComponent 调用后添加任何构造函数代码

                //

            }

     

            /// <summary>

            /// 清理所有正在使用的资源。

            /// </summary>

            protected override void Dispose(bool disposing)

            {

                if (disposing)

                {

                    if (components != null)

                    {

                        components.Dispose();

                    }

                }

                base.Dispose(disposing);

            }

     

     

            /// <summary>

            /// 应用程序的主入口点。

            /// </summary>

            [STAThread]

            static void Main()

            {

                Application.Run(new Form1());

            }

     

            private void button1_Click(object sender, System.EventArgs e)

            {

                Hasher hash = new Hasher();

     

                textBox1 .Text = hash.hashGetDriveID().ToString();

     

            }

     

            private void button2_Click(object sender, EventArgs e)

            {

                Hasher shit = new Hasher ();

                textBox1.Text = shit.Sern();

            }

     

            private void button3_Click(object sender, EventArgs e)

            {

               Hasher shit = new Hasher ();

               textBox1.Text = shit.GetDriveID();

            }

     

            private void button4_Click(object sender, EventArgs e)

            {

                 Hasher shit = new Hasher ();

                 textBox1.Text = shit.GetCpuID();

            }

     

     

     

     

        }

     

     

        public class Hasher

        {

     

     

     

            public string _HashText; //待加密的字符串

     

            // public Hasher()

     

            // {

     

            // }

     

     

     

     

     

            // 需要产生加密哈希的字符串

     

            public string HashText

            {

     

                set

                {

     

                    _HashText = value;

     

                }

     

                get

                {

     

                    return _HashText;

     

                }

     

            }

     

     

     

            /// 使用MD5CryptoServiceProvider类产生哈希值。不需要提供密钥。

     

            /// </summary>

     

            /// <returns></returns>

     

            public string MD5Hasher()

            {

     

                byte[] MD5Data = System.Text.Encoding.UTF8.GetBytes(HashText);

     

     

     

                MD5 Md5 = new MD5CryptoServiceProvider();

     

     

     

                byte[] Result = Md5.ComputeHash(MD5Data);

     

     

     

                return Convert.ToBase64String(Result); //返回长度为字节字符串

     

            }

     

     

     

     

     

            //获取cpu序列号

     

            public String GetCpuID()

            {

     

                ManagementClass mc = new ManagementClass("Win32_Processor");

     

                ManagementObjectCollection moc = mc.GetInstances();

     

     

     

                String strCpuID = null;

     

                foreach (ManagementObject mo in moc)

                {

     

                    strCpuID = mo.Properties["ProcessorId"].Value.ToString();

     

                    break;

     

                }

     

                return strCpuID;

     

            }//end method

     

            //获取硬盘序列号

     

            public String GetDriveID()

            {

     ManagementObject mo = new ManagementObject("win32_LogicalDisk.deviceid=""C:""");

                mo.Get();

                return mo.GetPropertyValue("VolumeSerialNumber").ToString();

     

     

     

            }

     

     

     

            public String strJia()

           {

     

                string strJiami = "";

     

                strJiami = GetCpuID() + GetDriveID();

     

     

     

                return strJiami;

     

            }

     

            public string jiqixuelie;

     

            public string duijiqima = null;

     

            ///得到机器码

     

            public string hashGetDriveID()

            {

     

                Hasher hs = new Hasher();

     

     

     

                hs.HashText = hs.strJia();

     

                string jiqi = hs.MD5Hasher();

     

                duijiqima = jiqi.Substring(8, 5);

     

                return duijiqima;

     

            }

     

     

     

            public string Sern()

     

            //最终的序列号//m为配置文件值

     

            //x为序列号值

     

            //css进行比较该注册码是否正确

            {

     

     

     

     

     

                //获取机器码

     

                Hasher hs = new Hasher();

     

     

     

                //获取序列号

     

                Hasher hash = new Hasher();

     

                hash.HashText = hs.hashGetDriveID().ToString();

     

                jiqixuelie = hash.MD5Hasher();

     

                return jiqixuelie;

     

     

            }

     

     

     

        }

    }

  • 相关阅读:
    【bzoj2190】: [SDOI2008]仪仗队 数论-欧拉函数
    【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂
    【bzoj2186】: [Sdoi2008]沙拉公主的困惑 数论-欧拉函数
    这里会有你想要的,已收录css , js相关文章
    Vue源码解析--实现一个指令解析器 Compile
    九宫格抽奖
    12行代码简单实现跑马灯文字匀速滚动
    滑弯曲弧形效果的插件-arctext.js改造
    几种拼图小游戏封装
    倒计时
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/1525948.html
Copyright © 2011-2022 走看看