讀取SIM卡的一些資訊用於PDA軟體註冊及安全使用

2021-08-24 18:54:57 字數 989 閱讀 3182

最近從客戶那邊反應來乙個需求,就是我們提交的軟體中的pda程式中的通訊錄模組的資訊保安方面做得不夠,就是在如果pda丟失時,這裡的聯絡人資訊就可能外洩。

所以就提出了以下的解決方案:

正常情況下,丟失後要更換sim卡,無論是那一方。所以可通過重新註冊新的sim資訊來驗證是否可用。具體的方案細節就不詳細說明了。其中技術方面關鍵的一環是如何識別唯一sim卡。

剛開始是讀取sim卡的本機號碼,從這篇《從microsoft .net framework 精簡版訪問**api>>文章提供的示例中封裝的sim類中就有提供乙個sim.getphonenumber()方法方便獲取本機號碼。

但是考慮到這個號碼是可修改的且可以有很多個(通過pda中提供的sim管理器就可以修改)。所以得找其它的sim卡資訊,在這裡用的是sim卡中imei,imsi(國際移動裝置識別碼(imei:international mobile equipment identification number)是區別移動裝置的標誌,儲存在移動裝置中,可用於監控被竊或無效的移動裝置。imei組成如下圖所示,移動終端裝置通過鍵入「*#06#」即可查得。其總長為15位,每位數字僅使用0~9的數字。其中tac代表型號裝配碼,由歐洲型號標準中心分配;fac代表裝配廠家號碼;snr為產品序號,用於區別同乙個tac和fac中的每台移動裝置;sp是備用編碼。

國際移動使用者識別碼(imsi:international mobile subscriber identification number)是區別移動使用者的標誌,儲存在sim卡中,可用於區別移動使用者的有效資訊。imsi組成如下圖所示,其總長度不超過15位,同樣使用0~9的數字。 其中mcc是移動使用者所屬國家代號,佔3位數字,中國的mcc規定為460;mnc是移動網號碼,最多由兩位數字組成,用於識別移動使用者所歸屬的移動通訊網;msin是移動使用者識別碼,用以識別某一移動通訊網中的移動使用者。)

讀取這兩個號碼用到tapi的linegetgeneralinfo()函式。而opennetcf提供了對tapi的封裝,正好可以拿來用。

其中的具體的應用可檢視

sim900 一些有用的指令

at cmgl指令 讀取指定儲存型別的簡訊 rec unread 或者rec read等 注意pdu和文字傳送方式下命令引數的區別。at cmgl rec unread r n 該命令用於讀取sim卡中接收但未讀的簡訊,讀完後簡訊的儲存型別變為 rec read 響應 cmgl 5,rec unre...

so的一些資訊

1.查詢動態庫so所依賴的其他庫 objdump x libtest.so grep need 結果例如 needed libc.so needed libdl.so 即,需要libc和libdl兩個so。2.也可以用ndk中的 android ndk r5b toolchains arm linu...

Websocket的一些資訊

html5的websocket api 它可用於客戶端 伺服器端。websocket api是下一代客戶端 伺服器的非同步通訊方法。該通訊取代了單個的tcp套接字,使用ws或wss協議,可用於任意的客戶端和伺服器程式。websocket目前由w3c進行標準化。websocket已經受到firefox...