在我們編寫好一款軟體後,我們不想別人盜用我們的軟體,這時候我們可以採用註冊的方式來保護我們的作品。這時候我們可能就需要簡單了解一下加密解密技術,下面是我的簡單總結:
第一步:程式獲得執行機的唯一標示(比如:網絡卡號,cpu編號,硬碟號等等)。
第二步:程式將獲得的唯一標示加密,然後有使用者或者程式將加密後的標示傳送給你。
第三步:你將加密後的標示解密(其實這時候你獲得的就是:網絡卡號,cpu編號,硬碟號)然後你再將網絡卡號,cpu編號,硬碟號加密傳送給客戶註冊。
第四步:程式將你傳送的註冊號進行解密,解密後的編號其實也是:網絡卡號,cpu編號,硬碟號。
第五步:每當程式啟動,首先解密你傳送的註冊號,然後讀取網絡卡號,cpu編號,硬碟號等等,最好進行驗證,看兩個標示是否一樣。
具體例項看**:
//獲取硬碟號
private string getdiskid()
moc = null;
mc = null;
return hdid;
} catch
finally }
//獲取cpu資訊
private string getcpuinfo()
return cpuinfo;
} catch
return "";
}//加密
static public string encrypt(string plaintext)
//解密
public static string decrypt(string cyphertext)
catch
descryptoserviceprovider cryptoprovider = new descryptoserviceprovider();
memorystream ms = new memorystream(byenc);
cryptostream cst = new c程式設計客棧ryptostream(ms, cryptoprovider.createdecryptor(bykey, byiv), cryptostreammode.read);
streamreader sr = new streamreader(cst);
return sr.readtoend();
} catch
}
C 獲取CPU資訊
include windows.h include iostream include string using namespace std 用來儲存資訊 dword deax dword debx dword decx dword dedx void execpuid dword veax 初始化c...
C 獲取邏輯硬碟資訊
1 概述 若僅簡單獲取邏輯驅動器的名稱列表我們使用.net框架的environment.getlogicaldrives即可,但是若想獲得更多關於磁碟驅動器的資訊我們可以使用.net框架下的system.management 命名空間所提供的類和委託等對大量管理資訊和管理事件的集合進行訪問 見這些資...
C 獲取硬碟空間資訊
獲取指定驅動器的空間總大小 單位為b 只需輸入代表驅動器的字母即可 public static long getharddiskspace string str harddiskname return totalsize 獲取指定驅動器的剩餘空間總大小 單位為b 只需輸入代表驅動器的字母即可 pub...