日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

用C#开发加密狗程序

發布時間:2023/12/15 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C#开发加密狗程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一些商務管理軟件,為了防止盜版,經常使用加密狗將軟件加密。下面的兩個實例將介紹如何將密碼寫入加密狗及利用加密狗來設計加密程序。

在使用加密狗時,需要向加密狗中寫入或讀取數據。例如,將密碼寫入或讀取加密狗,如何實現呢?運行本例,在文本框中設置密碼后,單擊【寫入】按鈕,即可將設置的密碼寫入加密狗,成功寫入后,單擊【讀出】按鈕,即可將寫入的密碼讀出并顯示在文本框中。如圖13.4所示。

在購買加密狗時,廠家通常會附帶有開發手冊和一張光盤。開發手冊中介紹了加密狗的使用方法和開發資料。本例使用賽孚耐信息技術有限公司的加密狗產品,該產品提供了.NET中非托管的類庫,來完成加密狗的數據讀寫功能。下面介紹有關加密狗的類庫中的讀寫函數。

??● DogWrite 函數

該函數將pdogData指向的數據寫入加密狗中,從DogAddr地址開始寫入,到DogBytes地址停止。

函數聲明如下:

???[DllImport("Win32dll.dll", CharSet = CharSet.Ansi)]

???public static unsafe extern uint DogWrite(uint idogBytes, uint idogAddr, byte*pdogData);

參數說明如下。

l ???idogAddr:對軟件狗讀寫操作時用戶區中的首地址。取值范圍為0~99。

l ???IdogBytes:對軟件狗讀寫操作時的字節長度。讀寫時取值范圍為1~100,并且與idogAddr之和不能超過100。

l ???pdogData:指針型變量。指向讀寫操作或變換的數據緩沖區。

l ??? 返回值:0表示操作成功,其他值是錯誤碼。

??● DogRead函數

該函數從加密狗中的idogAddr開始的存儲區讀出數據,存入pdogData指定的緩沖區,讀出字節數為idogBytes。切記,緩沖區大小要足夠長。

函數聲明如下:

[DllImport("Win32dll.dll",CharSet = CharSet.Ansi)]

???public static unsafe extern uint DogRead(uint idogBytes, uint idogAddr, byte*pdogData);

參數說明如下。

l ???idogAddr:對軟件狗讀寫操作時用戶區中的首地址。取值范圍為0~99。

l ???idogBytes:對軟件狗讀寫操作時的字節長度。讀寫時取值范圍為1~100,并且與idogAddr之和不能超過100。

l ???pdogData:指針型變量。指向讀寫操作或變換的數據緩沖區。

l ??? 返回值:0表示操作成功,其他值是錯誤碼。

??????注意以下幾點。

在使用這個函數之前,必須將隨加密狗附帶的安裝程序安裝完整,并將安裝目錄下的Win32dll.dll文件復制到系統目錄下。例如:

在Windows 2003下將安裝目錄下的“\SafeNetChina\SoftDog SDK V3.1\Win32\Win32dll\HighDll\ Win32dll.dll”文件復制到“C:\WINDOWS\system32\”文件夾中。

實現過程

(1)新建一個項目,命名為Ex13_03,默認窗體為Form1。

(2)在Form1窗體中,主要添加兩個Button控件,用于執行向加密狗數據的寫入與讀出數據,添加兩個TextBox控件,分別用于填寫向加密狗中寫入的數據和顯示讀取加密狗中的數據。

(3)主要程序代碼。

設置加密狗類,并且完善加密狗的讀寫功能,代碼如下:

[StructLayout(LayoutKind.Sequential)]

//這個類用于讀寫加密狗

public unsafe classDog

{

??? publicuint DogBytes, DogAddr;? //設置加密狗字節長度和起始地址

???public byte[] DogData;? //設置數據的長度

???public uint Retcode;

???[DllImport("Win32dll.dll", CharSet = CharSet.Ansi)]

???public static unsafe extern uint DogRead(uint idogBytes, uint idogAddr, byte*pdogData);

???[DllImport("Win32dll.dll", CharSet = CharSet.Ansi)]

???public static unsafe extern uint DogWrite(uint idogBytes, uint idogAddr, byte*pdogData);

???public unsafe Dog(ushort num)

??? {

???????DogBytes = num;

???????DogData = new byte[DogBytes]; //設置數據的長度

??? }

???public unsafe void ReadDog()

??? {

???????fixed (byte* pDogData = &DogData[0])

???????{

???????????Retcode = DogRead(DogBytes, DogAddr, pDogData);  //將數據讀出加密狗

???????}

??? }

???public unsafe void WriteDog()

??? {

???????fixed (byte* pDogData = &DogData[0])

???????{

???????????Retcode =DogWrite(DogBytes, DogAddr, pDogData); //將數據寫入加密狗

???????}

??? }

}

調用加密狗類,進行加密狗的讀寫功能,代碼如下:

???????private void button1_Click_1(object sender, EventArgs e)

???????{

???????????Dog dog = new Dog(100);

???????????dog.DogAddr = 0;????? ??

???????????dog.DogBytes = 10;???

???????????string str = textBox1.Text;

???????????for (int i = 0; i < str.Length; i++)

???????????{

???????????????dog.DogData[i] = (byte)str[i];

???????????}

???????????dog.WriteDog();

???????????MessageBox.Show("密碼已成功寫入加密狗!", "成功提示!",MessageBoxButtons.OK, MessageBoxIcon.Information);

???????????textBox1.ReadOnly = true;

???????????button1.Enabled = false;

???????????button2.Enabled = true;

???????}

???????private void button2_Click_1(object sender, EventArgs e)

???????{

???????????Dog dog = new Dog(100);

???????????dog.DogAddr = 0;???????

???????????dog.DogBytes = 10;???

???????????dog.ReadDog();

???????????if (dog.Retcode == 0)?? //開始讀加密狗數據

???????????{

???????????????char[] chTemp = new char[textBox1.Text.Length];

???????????????for (int i = 0; i < textBox1.Text.Length; i++)

???????????????{

???????????????????chTemp[i] = (char)dog.DogData[i];

???????????????}

???????????????String str = new String(chTemp);

???????????????textBox2.Text = str;

???????????}

???????????else

???????????{

???????????????textBox2.Text = "2:" + dog.Retcode;

???????????}

???????????textBox1.ReadOnly = false;

???????????button2.Enabled = false;

???????????button1.Enabled = true;

???????}

注意:本程序所使用的代碼為不安全代碼,正常編譯是無法通過的,那么需要設置開發環境允許運行不安全代碼,設置步驟為:在菜單欄中選擇“項目”/“屬性”/“生成”子菜單,在“生成”選項卡中選中“允許不安全代碼”選項即可。

用加密狗進行身份驗證

在程序開發過程中,對于一些機密的數據,開發人員需要將其有效的保護起來。例如,對于用戶的密碼,如果從數據庫中驗證用戶密碼,很容易被非法人員發現甚至破解。本例實現了利用加密狗進行身份驗證。實例運行結果如圖13.5所示本例的關鍵是從加密狗中讀取數據,可以使用ReadDog函數實現。有關該函數的介紹請參考實例“密碼寫入與讀出加密狗”中的“技術要點”部分。

實現過程

(1)新建一個項目,命名為Ex13_04,默認窗體為Form1。

(2)在Form1窗體中,主要添加兩個Button控件,用于數據驗證和退出程序,添加兩個TextBox控件,分別用于輸入用戶名稱和密碼。

(3)主要程序代碼。

???????private void button1_Click(object sender, EventArgs e)

???????{

???????????Dog dog = new Dog(100);

???????????dog.DogAddr = 0;???????

???????????dog.DogBytes =6;???????????

???????????dog.ReadDog();

???????????if (dog.Retcode == 0)

???????????{

???????????????char[] chTemp = new char[6];

???????????????for (int i = 0; i < 6; i++)

???????????????{

???????????????????chTemp[i] = (char)dog.DogData[i];

???????????????}

???????????????String str = new String(chTemp);

???????????????if (textBox2.Text==str)

???????????????{

???????????????????MessageBox.Show("OK");

???????????????}

???????????????else

???????????????{

???????????????????MessageBox.Show("error");

???????????????}

???????????}

???????}

總結

以上是生活随笔為你收集整理的用C#开发加密狗程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 对白刺激国产子与伦 | 在线免费黄网 | 最新中文字幕av专区 | 日本男人天堂 | 国产伦精品一区二区三区高清版 | 女生喷液视频 | 青青草国产成人99久久 | 美女尻逼视频 | 免费黄色在线看 | 免费乱淫视频 | 按摩ⅹxxx性hd中国 | 天天干天天操天天操 | 成人高潮视频 | 成人网在线播放 | 免费在线观看的av | 四虎视频在线观看 | 久久丫丫 | 欧美午夜精品一区二区三区 | 色乱码一区二区三区网站 | 秋霞网av | 美国一级特黄 | 九九色在线 | 91大神小宝寻花在线观看 | 亚洲我射| 国产高清黄色 | 国产在线v | 天天射日日 | 欧美精品性生活 | 久久久久久逼 | av一二区| 一区视频| 亚洲免费黄色网址 | 国产免费高清视频 | 亚洲综合视频在线播放 | 国产后入清纯学生妹 | 久久久久青草 | 99re在线视频 | 亚洲欧美韩日 | 97精品国产97久久久久久春色 | 99精品网站 | 生活片一级片 | 中日韩午夜理伦电影免费 | 波多野结衣精品 | 成人午夜免费网站 | 91精品国产综合久久久久久久 | 欧美精品一级在线观看 | 色偷偷中文字幕 | 一及黄色大片 | www.黄色在线 | 国产欧美视频在线观看 | xxxx国产视频 | 黄色片视频免费在线观看 | 天堂a在线| 国产网站免费看 | 麻豆tube| 在线视频观看一区 | 国产成人自拍网站 | 一区二区三区资源 | 夜夜嗨视频 | 久久久久久久久久久久久久av | www.夜夜操 | 先锋资源网av| 色就是色欧美色图 | 欧美性生活在线视频 | 亚洲熟妇毛茸茸 | 大战熟女丰满人妻av | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产高潮视频在线观看 | 中文字幕日韩在线播放 | 日本精品一二三 | 懂色tv| 久久久久99人妻一区二区三区 | 国产无码精品合集 | 国产丝袜在线视频 | 午夜爱爱影院 | 在线不卡免费av | www.成年人| 成人免费高清在线观看 | 亚洲av无码一区东京热久久 | 亚洲自拍偷拍一区 | 一区二区在线精品 | 一区二区三区日本视频 | 国产一区视频在线 | 狠狠涩| 成人小视频免费看 | 亚洲一区二区三区激情 | 超碰免费成人 | 在厨房拨开内裤进入毛片 | mm131亚洲精品| 中国老妇性视频 | 亚洲国产综合av | 久久一区二区三区四区五区 | 无码一区二区三区在线观看 | 国产精品黄网站 | 午夜在线观看av | 日本成人久久 | jizz一区二区三区 | 国产精品亚洲lv粉色 | 亚洲男人天堂视频 |