软件加密软件注册通用技术简述

在我们编写好一款软件后,我们不想别人盗用我们的软件,这时候我们可以采用注册的方式来保护我们的作品。这时候我们可能就需要简单了解一下加密解密技术,下面是我的简单总结:

第一步:程序获得运行机的唯一标示(比如:网卡号,CPU编号,硬盘号等等)。

第二步:程序将获得的唯一标示加密,然后有用户或者程序将加密后的标示发送给你。

第三步:你将加密后的标示解密(其实这时候你获得的就是:网卡号,CPU编号,硬盘号)然后你再将网卡号,CPU编号,硬盘号加密发送给客户注册。

第四步:程序将你发送的注册号进行解密,解密后的编号其实也是:网卡号,CPU编号,硬盘号。

第五步:每当程序启动,首先解密你发送的注册号,然后读取网卡号,CPU编号,硬盘号等等,最好进行验证,看两个标示是否一样。

具体实例看代码:

第一步:程序获得运行机的唯一标示:硬盘号,CPU信息
 

  1.         //获取硬盘号
  2.         private string GetDiskID()
  3.         {   
  4.             try
  5.             {
  6.                 //获取硬盘ID
  7.                 String HDid = "";
  8.                 ManagementClass mc = new ManagementClass("Win32_DiskDrive");
  9.                 ManagementObjectCollection moc = mc.GetInstances();
  10.                 foreach (ManagementObject mo in moc)
  11.                 {
  12.                     HDid = (string)mo.Properties["Model"].Value;
  13.                 }
  14.                 moc = null;
  15.                 mc = null;
  16.                 return HDid;
  17.             }
  18.             catch
  19.             {
  20.                 return "";
  21.             }
  22.             finally
  23.             {
  24.             }
  25.         }
  26.         //获取CPU信息
  27.         private string GetCpuInfo()
  28.         {
  29.             try
  30.             {
  31.                 string cpuInfo = "";//cpu序列号
  32.                 ManagementClass cimobject = new ManagementClass("Win32_Processor");
  33.                 ManagementObjectCollection moc = cimobject.GetInstances();
  34.                 foreach (ManagementObject mo in moc)
  35.                 {
  36.                     cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
  37.                 }
  38.                 return cpuInfo;
  39.             }
  40.             catch
  41.             {
  42.                 this.senRegeditID.Enabled = false;
  43.                 this.GetId.Enabled = true;
  44.             }
  45.       
  46.             return "";
  47.         }

第二步:程序将获得的唯一标示加密

  1.         //加密
  2.        static public string Encrypt(string PlainText)
  3.         {
  4.             string KEY_64 = "dafei250";
  5.             string IV_64 = "DAFEI500";
  6.             byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
  7.             byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
  8.             DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
  9.             int i = cryptoProvider.KeySize;
  10.             MemoryStream ms = new MemoryStream();
  11.             CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
  12.             StreamWriter sw = new StreamWriter(cst);
  13.             sw.Write(PlainText);
  14.             sw.Flush();
  15.             cst.FlushFinalBlock();
  16.             sw.Flush();
  17.             return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
  18.         }

第三步:你将加密后的标示解密(注册的时候解密)

  1.         //解密
  2.         public static string Decrypt(string CypherText)
  3.         {
  4.             string KEY_64 = "haeren55"; //必须是8个字符(64Bit)
  5.             string IV_64 = "HAEREN55";  //必须8个字符(64Bit)
  6.             try
  7.             {
  8.                 byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
  9.                 byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
  10.                 byte[] byEnc;
  11.                 try
  12.                 {
  13.                     byEnc = Convert.FromBase64String(CypherText);
  14.                 }
  15.                 catch
  16.                 {
  17.                     return null;
  18.                 }
  19.                 DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
  20.                 MemoryStream ms = new MemoryStream(byEnc);
  21.                 CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
  22.                 StreamReader sr = new StreamReader(cst);
  23.                 return sr.ReadToEnd();
  24.             }
  25.             catch { return "无法解密!"; }
  26.         }

第四步第五步就不用具体说了吧。另外:如需转载请注明出处:半支烟阿杰。http://blog.csdn.net/gisfarmer/ 谢谢。

时间: 2024-09-10 13:40:49

软件加密软件注册通用技术简述的相关文章

惨痛教训:请谨慎使用免费的文件夹加密软件

硅谷网(蔡小飞)6月19日讯 当今社会,电脑已然成为大众日常生活中不可或缺的办公与生活设备,同时随着数据科技的发展,http://www.aliyun.com/zixun/aggregation/12740.html">电脑硬盘内也容纳了越来越多的重要信息,这些信息可能是与工作密切相关的敏感资料,也有可能是自己拍摄保存的各类影像资料,任何人对这些可能涉及到商业机密与个人隐私的敏感内容,都是不希望被其他人轻易查阅或浏览的,所以大多数用户都会选择通过文件夹加密方式保护相关资料,依笔者看,文件夹

保护你的聊天隐私:外挂式加密软件设计思路

即时通讯工具(常用的是聊天软件与网上电话软件)被现代人越来越多地使用,主要是因为它便捷,随着手机3G技术的推广,即时通的移动在线能力,让你连走路的间歇都"没有"了,MSN.QQ已经成了都市新新人类的生活标志.信息沟通的高速度,使得人们思考的时间越来越少,性格变得急噪,很多话经常脱口而出,很多信息在不经意之间被不该知道的人知道了,不想被人听到的被转播了,不想被人看见的被直播了-越来越多的人在寻找能够加密的聊天软件. 有人推荐聊天软件自身的加密通讯功能,这样做有些掩耳盗铃.当大量的聊天记录

软件加密存储如何实现

问题描述 软件加密存储如何实现 本人大一学生,刚刚学完C和C++的基本语法,图形化界面才刚刚开始学,现在程序设计作业我选了一个学生信息管理系统的题目,在如何存储方面有些不懂的想请教一下.按我本来的打算是用txt文件储存学生信息,再在程序里用文件输入的函数读取到内存.现在打算增加给学生信息加密的功能,需要验证用户身份才能查看信息,但是不知道怎么实现这个加密.能不能使用数据库?如果用数据库的话,具体要怎么实现呢,或者给一下相关资料的链接. 解决方案 加密可以看看OPenSSL提供的加密方法,开源的.

如何借助加密软件预防企业内部泄密风险?

硅谷网(蔡小飞)8月1日讯  当前,电脑与互联网已被广泛运用于企业的设计.生产.管理等诸多环节,带来便捷高效的同时,潜在的泄密风险也在不断加大.以电子文档保存的各种企业信息(如:文档.图纸.数据.视频.照片等),较传统的纸质文档更容易被复制,并经由互联网的高速传播,在极短的时间内即可对企业造成巨大影响,而传统企业安全防护普遍存在防外不防内的管控盲区,据最新发布的第十九期<互联网安全报告>显示,"2013年,81%的企业数据安全泄密类问题发生在体系内部(内部人员过失泄密或主动窃密),由

软件加密市场需求与产品互动分析

每天,全世界由于软件盗版造成的损失不小于5000万美圆,即使在号称法律制度最完善的美国,盗版率也高达21 %(数据来源于IDC).软件盗版问题,已经成为影响 软件业生死存亡的重大考验,而加密也就成了无奈的选择.如果说,反病毒技术的更新是由病毒制造者驱动的话,那么,软件加密行业更是 一场与解密者进行的博弈,同时也推动着这一行业市场需求的发展.在最初的加密过程中, 大部分软件商采用的是软加密方式,主要有密码方式.软件自校验方式和钥匙盘方式等纯软件的手段. 但是随着软加密技术很快被解密软件攻克了防线,

加密软件 VeraCrypt 审计报告公布,发现多个高危漏洞

在 DuckDuckGo 和 VikingVPN 的资助下,QuarksLab 最近对开源加密软件 VeraCrypt 进行了安全审计.此次审计发现了 8个高危漏洞和 10 多个中低级别的漏洞. 关于VeraCrypt VeraCrypt 是一款非常流行的磁盘加密软件,它基于 TrueCrypt 7.1a 开发(在 2014 年 TrueCrypt 突然关闭之后才启动的这个项目),因此可以把它看成是 TrueCrypt 的分支 .在 TrueCrypt 停用之后,VeraCrypt 接过了 Tr

加密软件调查之二:市场潜力

本文讲的是加密软件调查之二:市场潜力,从2005年开始,中国信息安全市场热点逐渐转向以数据安全.数据防泄密为主的加密软件.在经历多年的技术.产品.市场和应用的发展之后,加密软件已经成为当前国内信息安全最为热火的领域.以文档和数据加密为核心,辅以文档的权限管理.备份.审计等多种功能的加密软件,已经在国内普遍应用开来. 2012年中旬,由国内数据安全专家和相关机构联合组成的"中国加密软件调查专家委员会",以不记名问卷调查方式,针对加密软件厂商.媒体.用户单位.渠道代理商等相关产业链上下游单

如何加强软件加密?

问题描述 SafeNet,Inc是全球知名的网络安全解决方案提供商,利用其在加密方面的优势,SafeNet为客户提供从软件.硬件到芯片在内的WAN.DRM.身份认证.软件保护及数字授权管理等多种安全解决方案.."SafeNet软件保护日"旨在通过软件保护技术全国巡讲,为广大的中国软件企业提供一次全面了解主流软件加密产品与技术应用的机会.引领软件开发人员敲开加密技术的神秘之门,掌握软件加密的种种技巧,帮助企业获得软件防护技能.了解作为知名信息安全解决方案提供商的美国SafeNet公司了解

加密软件助企业冲上“云”霄

互联网的发展使得信息技术有了更大的发展空间,尤其是在大数据时代的背景之下,能处理和储存大数据的信息技术更是炙手可热,而其中云技术就是典型的代表.但是就如它的名字一般,这项技术能否真正翱翔天空或者冲上云霄,还必须从信息安全的角度出发.而其中针对数据本源的加密软件或许是最好的推进剂. 云技术分析是发展 更是安全的挑战 除了可能发生的大规模计算资源的系统故障外,云服务器安全隐患还包括缺乏统一的安全标准.适用法规以及对于用户的隐私保护.数据主权.迁移.传输.安全.灾备等问题. 云安全从性质上可以分为两大