精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術針對MAC地址的應用程序加密方法

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-01-17 10:09 ? 次閱讀

在實際應用中,客戶可能希望對自己的程序添加驗證過程,使得無法被隨意拷貝到其它板子上使用。英創ARM系列工控主板都配有唯一指定MAC,我們可以根據MAC地址,生產加密字符串,存入KEY文件或是注冊表內。然后在程序啟動部分添加驗證代碼,驗證這個字符串,從而達到防拷貝的目的。

本文介紹MAC的獲得方式及幾種常用的加密方式。

驗證設備

在驗證MAC之前,首先應當檢查使用的板卡型號,以檢查EM9281為例,代碼如下。

添加頭文件及宏定義,此部分代碼均包含在板子對應SDK包中的bsp_drivers.h下

#include

extern"C"__declspec(dllimport) BOOLKernelIoControl( DWORDdwIoControlCode,

LPVOID lpInBuf,

DWORD nInBufSize,

LPVOID lpOutBuf,

DWORD nOutBufSize,

LPDWORD lpBytesReturned);

#defineIOCTL_HAL_BOARD_STATE_READ CTL_CODE(FILE_DEVICE_HAL, 4024, METHOD_BUFFERED, FILE_ANY_ACCESS)

#defineEM9280_BOARD_TYPE_9280 0

#defineEM9280_BOARD_TYPE_9281 1 // -> EM9281

#defineEM9280_BOARD_TYPE_9380 2

#defineEM9280_BOARD_TYPE_9283 3

#defineEM9280_BOARD_TYPE_ES9281 4 // -> ES9281

#defineEM9280_BOARD_TYPE_9287 7

#defineEM9280_BOARD_CFG_SHIFT 14

#defineEM9280_BOARD_CFG_MASK 0x3

#defineEM9280_BOARD_TYPE_SHIFT 4

#defineEM9280_BOARD_TYPE_MASK 0x7

#defineEM928X_BOARD_TYPE_BASE(v) ((v >> EM9280_BOARD_TYPE_SHIFT) & EM9280_BOARD_TYPE_MASK)

#defineEM928X_BOARD_TYPE_SUB_ID(v) ((v >> EM9280_BOARD_CFG_SHIFT) & EM9280_BOARD_CFG_MASK)

#defineEM9287_BOARD_TYPE_SUB_TYPE(v) ((EM928X_BOARD_TYPE_SUB_ID(v)==1)? EM9280_BOARD_TYPE_9281:\

(EM928X_BOARD_TYPE_SUB_ID(v)==2)? EM9280_BOARD_TYPE_ES9281: EM9280_BOARD_TYPE_9287)

#defineEM928X_BOARD_TYPE_ALL(v) ((EM928X_BOARD_TYPE_BASE(v)==EM9280_BOARD_TYPE_9287)? EM9287_BOARD_TYPE_SUB_TYPE(v):EM928X_BOARD_TYPE_BASE(v))

檢查板卡型號,以EM9281為例

BOOL bRet;

DWORD dwReturnBytes;

DWORD dwBoardInfo = 0;

dwReturnBytes = 0;

bRet = KernelIoControl(IOCTL_HAL_BOARD_STATE_READ,

NULL, 0,

(LPVOID)&dwBoardInfo,sizeof(DWORD),

&dwReturnBytes);

If(EM928X_BOARD_TYPE_ALL(dwBoardInfo)!= EM9280_BOARD_TYPE_9281)return;

獲得MAC地址

必要的頭文件和lib庫

#include"Iphlpapi.h"

#pragmacomment(lib,"Iphlpapi.lib")

VOIDGetMAC(BYTE* buf)

{

DWORD dwRetVal;

IP_ADAPTER_INFO AdapterInfo[4];

ULONG OutBufLen =sizeof(IP_ADAPTER_INFO);

GetAdaptersInfo(&AdapterInfo[0], &OutBufLen);

GetAdaptersInfo(&AdapterInfo[0], &OutBufLen);

/*if(strcmp(AdapterInfo[0].AdapterName, "ENET1") != 0)

{

return;

}*/

memcpy(buf, AdapterInfo[0].Address, 6);

}

BYTE mac[6];

GetMAC(mac);

char macstr[16];

sprintf(macstr, "%02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);

加密策略

英創所有嵌入式板卡都擁有唯一的MAC地址,在對MAC地址加密后,生成唯一的加密KEY。同時程序中判斷板卡信息,并驗證這個加密KEY。這樣可以保證程序必須處于正確的板卡中,并擁有正確的KEY文件,才能執行。

為了增加安全性,加大KEY文件破譯難度,可以考慮以下處理

1、將MAC地址與常量字符串混合后,再進行加密,生成加密KEY。

2、多種加密手段結合使用,多次加密。

3、驗證失敗后“軟”關閉程序,可以做延遲處理,并可以考慮重啟設備,增加暴力破解KEY的難度。

加密程序流程

獲得板卡MAC地址à 執行加密函數à 生成KEY文件置入板卡中

解密程序流程

查詢板卡MACà執行加密函數à讀取KEY文件中密鑰并對比à判斷驗證是否成功并進行后續執行

讀取KEY文件中密鑰à執行解密函數à查詢板卡MAC并對比à判斷驗證是否成功并進行后續執行

加密方法

常用的加密方法有很多,可以參考文章《常用加密方法及代碼》。同時英創提供這些加密算法相關測試例程,如有需要,可以聯系英創工程師獲得。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6085

    瀏覽量

    35226
收藏 人收藏

    評論

    相關推薦

    關于MAC地址申請與運用的常見問題

    。了解完MAC地址碼,大家應該也想知道MAC地址申請與運用過程中容易遇到什么樣的問題。接下來利檢測將
    的頭像 發表于 11-07 16:42 ?143次閱讀
    關于<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>申請與運用的常見問題

    中科達榮獲2024年軟件和信息技術服務優秀企業

    及前百家企業”名單。中科達憑借非凡的技術實力與持續的創新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業”以及“2024年軟件和信息技術服務優秀企業”。
    的頭像 發表于 10-30 11:44 ?391次閱讀

    向IEEE機構申請MAC地址的申請流程

    所有設備在投入市場銷售使用前該臺設備都必須寫入MAC地址,以便設備后續使用的識別與安全性監控。而MAC地址的申請方法主要可以通過兩種渠道進行
    的頭像 發表于 09-29 17:52 ?287次閱讀
    向IEEE機構申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的申請流程

    如何獲取MAC地址MAC地址的三個申請條件

    在產品設備都規范化管理的當今社會,如果您的產品設備想要投入市場,設備物理地址MAC地址則是唯一能識別設備的識別碼。那么MAC地址的申請條件
    的頭像 發表于 09-06 17:14 ?365次閱讀
    如何獲取<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的三個申請條件

    怎么申請MAC地址?不同申請方式的區別是什么?

    藍牙設備的MAC地址是指藍牙模塊中使用的唯一標識符,用于在網絡中識別和區分不同的藍牙設備。這個MAC地址是由美國電氣和電子工程師協會(IEEE)分配的,而不是由藍牙聯盟直接分配的。接來
    的頭像 發表于 08-22 16:55 ?538次閱讀
    怎么申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?不同申請方式的區別是什么?

    向IEEE機構申請MAC地址方法與申請費用組成

    在當今數字化時代,網絡設備的唯一標識符——MAC地址,對于確保設備的網絡通信安全與準確性至關重要。IEEE(電氣和電子工程師協會)作為全球知名的技術組織,負責為網絡設備制造商分配MAC
    的頭像 發表于 08-05 16:59 ?394次閱讀
    向IEEE機構申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的<b class='flag-5'>方法</b>與申請費用組成

    每個ESP-12E設備的Station和softAP的MAC地址是否不同?

    ,并為每個設備提供唯一的 MAC 地址(在 CIPSTAMAC,在 CIMAPMAC)?我需要確保這些設備中的每一個設備都能被識別,因為在我的應用程序中,最多可以有 50 個設備同時連接到一個 IP
    發表于 07-16 07:13

    怎么申請MAC地址?MAC地址申請流程分享

    絡通信中扮演著至關重要的角色。而如何申請MAC地址相信卻有很多企業或者制造廠商不太了解。那么接下來利檢測將通過本篇內容將為您詳細分享MAC地址
    的頭像 發表于 07-10 17:30 ?451次閱讀
    怎么申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>申請流程分享

    ESP32-C3 iOS微信小程序開發獲取不到芯片藍牙mac地址怎么解決?

    微信小程序的官方文檔顯示: i0S 設備上掃描獲取到的 deviceId 是系統根據外圍設備 MAC 地址及發現設備的時間生成的 UUD。意思是iOS系統對原本藍牙設備廣播的mac
    發表于 06-06 06:49

    如何向IEEE機構申請MAC地址?需要準備哪些申請材料?

    在當今數字信息高速發展的時代,電子產品無線設備數不勝數。除了種類繁多,同類別乃至同型號產品都在大批量生產的環境下,MAC地址就像是每一臺網絡設備的“身份證”一般,它獨特且不可復制,確保了網絡通信
    的頭像 發表于 05-21 17:05 ?558次閱讀
    如何向IEEE機構申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?需要準備哪些申請材料?

    深入了解IEEE協會:設備MAC地址申請指南

    在數字化浪潮中,設備之間的通信變得日益頻繁和重要。而在這個通信網絡中,每一臺設備都需要一個獨特的身份標識來幫助大家有效識別設備信息,那就是MAC地址。本篇內容,利檢測將帶大家深入了解
    的頭像 發表于 05-09 17:20 ?516次閱讀
    深入了解IEEE協會:設備<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>申請指南

    深入了解IEEE,設備MAC地址碼的申請與分配指南

    )提供了一種獨特的標識方案,即MAC地址(MediaAccessControlAddress)。本文利檢測將深入探討IEEE和設備MAC地址
    的頭像 發表于 04-16 17:40 ?641次閱讀
    深入了解IEEE,設備<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>碼的申請與分配指南

    RX78M組 EtherCAT ETG.5003示例程序固件信息技術

    電子發燒友網站提供《RX78M組 EtherCAT ETG.5003示例程序固件信息技術.pdf》資料免費下載
    發表于 02-21 14:22 ?1次下載
    RX78M組  EtherCAT ETG.5003示例<b class='flag-5'>程序</b>固件<b class='flag-5'>信息技術</b>

    怎么注冊MAC地址MAC地址的必要性介紹

    MAC地址(MediaAccessControlAddress)是分配給網絡設備的唯一標識符。它是一個由48位二進制數組成的地址,通常以6個十六進制數字對表示,中間用冒號或連字符分隔開。MAC
    的頭像 發表于 12-22 15:44 ?1039次閱讀
    怎么注冊<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的必要性介紹

    如何綁定ip地址mac物理地址呢?

    如何綁定ip地址mac物理地址呢? 綁定IP地址MAC物理地址是一種網絡管理和安全措施,可以
    的頭像 發表于 12-07 09:33 ?6557次閱讀