软件注册码生成器代码
Èí?þ×??áÂëÉú?ÉÆ??úÂë
×?Õß?ºÎ?Öª
using System;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Security.Cryptography;
using Microsoft.Win32;
using System.Configuration;
/**////
/// ?ÓÃÜÊý?Ý
///
///
///
///
private string EnText(string Text,string sKey)
{
StringBuilder ret=new StringBuilder();
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray;
inputByteArray=Encoding.Default.GetBytes(Text);
//Í??ýÁ??Î?þÏ?ÃÜÂëÉèÖÃ?Ô?ÆËã??µÄ?õÊ???ÏòÁ?
des.Key =
ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswor
dForStoringInConfigFile
(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey,
"md5").Substring(0,8),"sha1").Substring(0,8));
//Í??ýÁ??Î?þÏ?ÃÜÂëÉèÖÃËã??µÄ?úÃÜÃÜÔ?
des.IV =
ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswor
dForStoringInConfigFile
(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey,
"md5").Substring(0,8),"md5").Substring(0,8));
System.IO.MemoryStream ms=new System.IO.MemoryStream();
CryptoStream cs=new
CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray,0,inputByteArray.Length);
cs.FlushFinalBlock();
foreach( byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}",b);
}
return ret.ToString();
}
catch
{
return "";
}
}
/**////
/// ?âÃÜÊý?Ý
///
///
///
///
private string DeText(string Text,string sKey) {
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//??ÒåDES?ÓÃÜ?ÔÏó
int len;
len=Text.Length/2;
byte[] inputByteArray = new byte[len];
int x,i;
for(x=0;x
/// ???ÓÃܵÄ×Ö?û??ת??Ϊ×??áÂëÐÎÊ?
///
/// Òª?ÓÃÜ×Ö?û??
/// ×???ºóµÄ×Ö?û??
public string transform(string input,string skey) {
string transactSn=string.Empty;
if(input == "")
{
return transactSn;
}
string initSn=string .Empty;
try
{
initSn=this.EnText(this.EnText(input,skey),skey).ToString();
transactSn=initSn.Substring(0,5) + "-" +initSn.Substring(5,5) +
"-" + initSn.Substring(10,5) + "-" + initSn.Substring(15,5) +
"-" + initSn.Substring(20,5);
return transactSn;
}
catch
{
return transactSn;
}
}