C\#하드디스크 번호,CPU 정보,암호 화 복호화 기술 을 가 져 오 는 절차

우리 가 소프트웨어 를 작성 한 후에 우 리 는 다른 사람 이 우리 의 소프트웨어 를 도용 하고 싶 지 않다.이때 우 리 는 등록 방식 으로 우리 의 작품 을 보호 할 수 있다.이 럴 때 우 리 는 암호 화 복호화 기술 을 간단하게 알 아야 할 것 이다.다음은 나의 간단 한 요약 이다.
첫 번 째 단계:프로그램 이 실행 기의 유일한 표 시 를 받 았 습 니 다(예 를 들 어 네트워크 카드 번호,CPU 번호,하 드 디스크 번호 등).
두 번 째 단계:프로그램 이 얻 은 유일한 표 시 를 암호 화하 고 사용자 나 프로그램 이 암호 화 된 표 시 를 보 냅 니 다.
세 번 째 단계:암호 화 된 표 시 를 복호화 합 니 다.
네 번 째 단계:프로그램 은 당신 이 보 낸 등록 번 호 를 복호화 합 니 다.복호화 후의 번호 도 사실은 네트워크 카드 번호,CPU 번호,하 드 디스크 번호 입 니 다.
다섯 번 째 단계:프로그램 이 시 작 될 때마다 먼저 보 낸 등록 번 호 를 복호화 한 다음 에 네트워크 카드 번호,CPU 번호,하 드 디스크 번호 등 을 읽 고 두 표시 가 같은 지 확인 하 는 것 이 좋 습 니 다.
구체 적 인 실례 코드 보기:
첫 번 째 단계:프로그램 이 실행 기의 유일한 표 시 를 얻 었 습 니 다:하 드 디스크 번호,CPU 정보

//     <script type="text/JavaScript"> alimama_pid="mm_10249644_1605763_5018464"; alimama_type="f"; alimama_sizecode ="tl_1x1_8"; alimama_fontsize=12; alimama_bordercolor="FFFFFF"; alimama_bgcolor="FFFFFF"; alimama_titlecolor="0000FF"; alimama_underline=0; alimama_height=22; alimama_width=0; </script> <script src="http://a.alimama.cn/inf.js" type=text/javascript> </script>
private string GetDiskID()
{  
 try
 {
  //    ID
  String HDid = "";
  ManagementClass mc = new ManagementClass("Win32_DiskDrive");
  ManagementObjectCollection moc = mc.GetInstances();
  foreach (ManagementObject mo in moc)
  {
   HDid = (string)mo.Properties["Model"].Value;
  }
  moc = null;
  mc = null;
  return HDid;
 }
 catch
 {
  return "";
 }
 finally
 {
 }
}

//  CPU  
private string GetCpuInfo()
{
 try
 {
  string cpuInfo = "";//cpu   
  ManagementClass cimobject = new ManagementClass("Win32_Processor");
  ManagementObjectCollection moc = cimobject.GetInstances();
  foreach (ManagementObject mo in moc)
  {
   cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
  }
  return cpuInfo;
 }
 catch
 {
  this.senRegeditID.Enabled = false;
  this.GetId.Enabled = true;
 }
 return "";
}
두 번 째 단계:프로그램 이 얻 을 유일한 표시 암호 화

//   <script type="text/JavaScript"> alimama_pid="mm_10249644_1605763_5027492"; alimama_type="f"; alimama_sizecode ="tl_1x5_8"; alimama_fontsize=12; alimama_bordercolor="FFFFFF"; alimama_bgcolor="FFFFFF"; alimama_titlecolor="0000FF"; alimama_underline=0; alimama_height=22; alimama_width=0; </script> <script src="http://a.alimama.cn/inf.js" type=text/javascript> </script>
static public string Encrypt(string PlainText)
{
 string KEY_64 = "dafei250";
 string IV_64 = "DAFEI500";
 byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
 byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
 DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
 int i = cryptoProvider.KeySize;
 MemoryStream ms = new MemoryStream();
 CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
 StreamWriter sw = new StreamWriter(cst);
 sw.Write(PlainText);
 sw.Flush();
 cst.FlushFinalBlock();
 sw.Flush();
 return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
세 번 째 단계:암호 화 된 표 시 를 복호화 합 니 다(등록 할 때 복호화)

//  
public static string Decrypt(string CypherText)
{
 string KEY_64 = "haeren55"; //   8   (64Bit)
 string IV_64 = "HAEREN55"; //  8   (64Bit)
 try
 {
  byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
  byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
  byte[] byEnc;
  try
  {
   byEnc = Convert.FromBase64String(CypherText);
  }
  catch
  {
   return null;
  }
  DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
  MemoryStream ms = new MemoryStream(byEnc);
  CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
  StreamReader sr = new StreamReader(cst);
  return sr.ReadToEnd();
 }
 catch { return "    !"; }
}
이상 은 C\#하 드 디스크 번호,CPU 정보,암호 화 복호화 기술 의 절차 에 대한 상세 한 내용 입 니 다.C\#하 드 디스크 번호,CPU 정보,암호 화 복호화 기술 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기