久久久久久国产精品无码超碰,国产精品 人妻互换,国产又色又爽又黄的免费软件,男女下面一进一出好爽视频

信息安全畢業論文

軟件設計中用戶身份的認證方法

時間:2022-10-05 18:09:04 信息安全畢業論文 我要投稿
  • 相關推薦

軟件設計中用戶身份的認證方法

  軟件設計中用戶身份的認證方法

  摘要:介紹幾種在計算機軟件系統設計中常用的用戶身份認證方法,著重闡述了采集用戶硬件信息的方法,對程序設計人員設計應用程序有一定借鑒作用。

  關鍵詞:計算機軟件;身份認證;用戶識別;信息采集

  用戶身份的認證和識別,是設計計算機應用程序所必須考慮的因素,因為軟件開發者需要通過識別用戶來進行軟件注冊、升級及授權等服務。

  一、幾種用戶認證方法

  目前,獲得用戶身份的方法主要有以下幾種。

  1、由用戶自己提交個人信息進行認證。一些軟件通過使用者自己提交相關信息,這些信息包含用戶姓名、E-mail地址等,并以此數據作為軟件提供服務的關鍵信息。這種方法的優點是簡單、易實現。但這種方法的弱點也很明顯,即不能確保信息的真實性,也不能阻止使用者把獲得的信息與他人共享。

  即一個使用者獲得了注冊信息后,可以將注冊信息與親戚朋友共享,那么這些人都能使用此軟件了。糟糕的情況是使用者將注冊信息發布到網絡上,后果更是難以預計。

  2、由程序自動采集用戶信息進行認證。為了防止軟件被非法用戶自由使用,開發者可以使用程序來采集使用者計算機的一些相關信息。這些信息是使用者的計算機所特有的、不會輕易改變的,如硬盤序列號、CPU標識號等,開發者可以把這些信息與軟件綁定到使用者的機器上執行。

  例如Windows XP的注冊就是使用了這種方法。這種方法的優點是可以防止軟件隨意傳播,但如果用戶硬件更換,可能會使注冊信息失效。

  3、由特定的硬件提供信息認證用戶。使用加密鎖、身份認證Token、動態口令生成器等硬件產品來提供信息。利用硬件的不可復制性,把硬件和軟件捆綁在一起,利用硬件里面的唯一性的識別信息來識別用戶身份。這種方法安全性好,但成本相對較高。

  二、用戶信息的采集

  在實際應用中,使用的認證方法往往不是單一的,而是混合實施。對于個人開發者而言,要設計一個軟件系統,為了既提高安全性,又降低成本,主要采用第二種方法。

  每臺計算機的CPU ID、硬盤序列號、顯卡型號、網卡的MAC地址等信息是不同的,把多種信息組合起來后,信息相同的概率就更低了,這些就是開發者需要采集的信息。

  1、獲取網卡的MAC地址。網卡的MAC地址是網卡的唯一標志,它是固化在網卡串行EEPROM中的物理地址,以太網交換機就是根據信息包頭中的MAC源地址和目的地址實現包的交換和傳遞的。理論上講,不存在2塊網卡的MAC完全相同,這點非常適合用于用戶的身份認證。

  在Windows操作系統下,在DOS窗口中運行ipconfig/all命令,就可以查看本機的網卡MAC地址,如顯示為:Physical Address:00――14――2A――6F――47――1A。

  在Windows XP系統下,可以使用系統提供的NetApi32.DLL功能,實現網卡信息的采集。方法為:(1)使用NCBENUM命令獲得網卡的數目和每塊網卡的內部編號;(2)使用NCBASTAT命令獲取每塊網卡的MAC地址。下面是部分程序源碼,詳細信息參見相關資料。

  typedef struct _ASTAT_

  {

  ADAPTER_STATUS adapt;

  NAME_BUFFER NameBuff[30];

  }ASTAT,*PASTAT;

  ASTAT Adapter;

  void main()

  {

  NCB ncb;

  UCHAR uRetCode;

  LANA_ENUM lenum;

  //向網卡發送NCBENUM命令,以獲取當前機器的網卡信息,如有多少個網卡、每張網卡的編號等。

  memset(&ncb,0,sizeof(ncb));

  ncb.ncb_command=NCBENUM;

  ncb.ncb_buffer=(unsigned char*)&lenum;

  ncb.ncb_length=sizeof(lenum);

  uRetCode=Netbios(&ncb);

  if(uRetCode!=0)return;

  //對每一張網卡,通過其網卡編號,獲取其MAC地址

  //網卡編號,一般從0開始,但在Windows 2000中并不一定是連續分配的

  For(int i=0;i  {

  //首先對選定的網卡發送一個NCBRESET命令,以便進行初始化

  Memset(&ncb,0,sizeof(ncb));

  ncb.ncb_command=NCBRESET;

  ncb.ncb_lana_num=lenum.lana[i];//指定網卡號

  uRetCode=Netbios(&ncb);

  //接著,可以發送NCBASTAT命令以獲取網卡的信息

  Memset(&ncb,0,sizeof(ncb));

  ncb.ncb_command=NCBASTAT;

  ncb.ncb_lana_num=lenum.lana[i];//指定網卡號

  strcpy((char *)ncb.ncb_callname,“*”);

  ncb.ncb_buffer=(unsigned char *)&Adapter;//指定返回的信息存放的變量

  ncb.ncb_length=sizeof(Adapter);

  uRetCode = Netbios(&ncb);

  }

  }

  此時,按F7編譯直至通過,按F5運行即可。這段代碼可以直接嵌入相關的應用系統之中,或封裝成.DLL或COM控件,以便可以在Visual Basic、Visual Foxpro、Power Builder或Delphi等其他程序中調用。

  2、獲取CPU信息。以前的CPU型號有很多是相同的,但在Pentium III后,Intel公司為了安全交易和資產追蹤,為每個處理器增加了一個唯一的序列號,這是我們希望獲取的信息。在CPU指令集中,指令cupid被設計用來獲取CPU有關的信息,關于這一指令的說明,可以參見相關資料,這里不再詳細介紹。下面是用C語言編寫的一段功能實現源碼,用于識別CPU信息,并顯示出來。

  {

  PROCESSOR_SIGNATURE ps;

  FEATURE_FLAGS ff;

  MISC_INFO mi;

  _asm

  {

  mov eax,1

  cupid

  mov ps,eax

  mov mi,ebx

  mov ff,edx

  }

  printf(“Processor Type:%d\n”,ps.ProcessorType);

  printf(“Model Number:%d\n”,ps.ModelNumber);

  printf(“Family Code:%d\n”,ps.FamilyCode);

  printf(“Extended Model:%d\n”,ps.ExtendedModel);

  printf(“Extended Family:%d\n”,ps.ExtendedFamily);

  printf(“Stepping ID:%d\n”,ps.SteppingID);

  printf(“Brand ID:%d\n”,mi.BrandID);

  if(ff.MMX) printf(“Support MMX\n”);

  if(ff.SSE)printf(“Support SSE\n”);

  if(ff.SSE2)printf(“Support SSE2\n”);

  if(ff.PSN)printf(“Support processor serial number\n”);

  }

  以上功能可以獲取CPU的緩存信息,顯示緩存的聯合多路工作狀態、緩存入口和標準標簽的數目等,都可以作為識別CPU的標志,而CPU的序列號(processor serial number)是每個CPU的不變標識。

  3、獲取硬盤序列號。大多數計算機中都配有硬盤,但由于其有損壞而被更換的可能性,所以其信息的可靠性要低于CPU信息。在網上能夠找到很多獲得硬盤序列號的程序,但大多數不是我們所需要的。

  如果在DOS窗口下輸入Dir/p命令,我們就能看到”Volume Serial Number is xxxx-xxxx”這樣的信息,很多程序取得的就是這個信息,而這是格式化程序產生并保存在硬盤上的一個信息,即”邏輯硬盤序列號”,不是我們所要的,我們要獲得硬盤廠商提供的信息,由于程序比較復雜,限于篇幅,就不再詳細介紹了,有興趣的朋友可以進一步研究。

【軟件設計中用戶身份的認證方法】相關文章:

最新電話用戶真實身份信息登記規定05-27

智能終端中的應用軟件設計中的光傳感器10-26

科學家們認證的學習方法10-06

淺析電子商務中的身份鑒別技術論文10-08

通信工程研究生認證方法論文10-08

論語中的學習方法10-06

Maven在Eclipse中配置方法10-05

《高級英語》中族裔文化身份與文化認同研究論文10-12

軟件設計辭職報告03-16

用戶報告模板04-26

主站蜘蛛池模板: а天堂中文在线官网在线| 日韩精品 在线 国产 丝袜| 无码免费一区二区三区免费播放| 国产精品秘?久久久久久| 午夜无码免费福利视频网址| 亚洲成亚洲乱码一二三四区软件| 国产午夜亚洲精品久久| 福利100合集 在线播放| 亚欧av无码乱码在线观看性色| 色综合久久久久综合体桃花网| 欧美国产综合欧美视频| 最新日韩精品中文字幕| 国产精品美女乱子伦高潮| 无码一卡二卡三卡四卡| 成人欧美一区二区三区a片| 日韩精品内射视频免费观看| 波多野结av在线无码中文| 爽到高潮无码视频在线观看| 欧洲vat一区二区三区| 国产亚洲精品久久久久婷婷瑜伽| 免费a级毛片在线播放| 日本边添边摸边做边爱边| 人妻免费久久久久久久了| 东北少妇不戴套对白第一次| 亚洲日韩乱码中文无码蜜桃| 天天澡天天揉揉av无码| 久久久久久国产精品无码下载| 久久久久久久亚洲av无码| 中文字幕亚洲乱码熟女一区二区| 亚洲精品入口一区二区乱麻豆精品| 热99re久久国超精品首页| 精品欧美一区二区在线观看| 白丝爆浆18禁一区二区三区| 久久综合激激的五月天| 亚洲精品第一国产综合野草社区| 日韩av无码国产精品| 久久久久99精品成人片三人毛片| 亚洲色av性色在线观无码| 思思久久99热只有频精品66| 成人性生交大片免费看96| 双腿张开被9个男人调教|