久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

      <small id='z447Q'></small><noframes id='z447Q'>

    1. <legend id='z447Q'><style id='z447Q'><dir id='z447Q'><q id='z447Q'></q></dir></style></legend>
      <i id='z447Q'><tr id='z447Q'><dt id='z447Q'><q id='z447Q'><span id='z447Q'><b id='z447Q'><form id='z447Q'><ins id='z447Q'></ins><ul id='z447Q'></ul><sub id='z447Q'></sub></form><legend id='z447Q'></legend><bdo id='z447Q'><pre id='z447Q'><center id='z447Q'></center></pre></bdo></b><th id='z447Q'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='z447Q'><tfoot id='z447Q'></tfoot><dl id='z447Q'><fieldset id='z447Q'></fieldset></dl></div>
      • <bdo id='z447Q'></bdo><ul id='z447Q'></ul>

        <tfoot id='z447Q'></tfoot>

      1. 閱讀 Mifare Classic 會返回奇怪的字符

        Reading Mifare Classic returns strange characters(閱讀 Mifare Classic 會返回奇怪的字符)

          <legend id='kBNwz'><style id='kBNwz'><dir id='kBNwz'><q id='kBNwz'></q></dir></style></legend>

          • <i id='kBNwz'><tr id='kBNwz'><dt id='kBNwz'><q id='kBNwz'><span id='kBNwz'><b id='kBNwz'><form id='kBNwz'><ins id='kBNwz'></ins><ul id='kBNwz'></ul><sub id='kBNwz'></sub></form><legend id='kBNwz'></legend><bdo id='kBNwz'><pre id='kBNwz'><center id='kBNwz'></center></pre></bdo></b><th id='kBNwz'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='kBNwz'><tfoot id='kBNwz'></tfoot><dl id='kBNwz'><fieldset id='kBNwz'></fieldset></dl></div>
            <tfoot id='kBNwz'></tfoot>

              <bdo id='kBNwz'></bdo><ul id='kBNwz'></ul>

                <small id='kBNwz'></small><noframes id='kBNwz'>

                  <tbody id='kBNwz'></tbody>
                1. 本文介紹了閱讀 Mifare Classic 會返回奇怪的字符的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  在使用 Android 讀取 MIFARE 卡并將數據轉換為 UTF-8 時,我得到了奇怪的字符,例如 .我正在嘗試構建一個可以讀取我們正在使用的某種身份證的應用程序.現在的問題是我在單詞之間得到了奇怪的字符,并且一些單詞在塊之間被分割了,所以我怎樣才能安全地得到我正在尋找的單詞?例如我的讀數是這樣的:

                  43224 19032019在第 2 區塊 sektor 2 bindex :8

                  并在以 19 開頭的其余數字位于新塊的位置進行拆分:

                  ...我的名字...M...19

                  在區塊 1 sektor 1 bindex :4

                  930402...NO934951

                  在第 2 區塊 sektor 1 bindex :4

                  <上一頁>c5 42 4e 49 44 00 07 4f 4f 4f 4f 4f 4f 00 4b 42 "?bnid" "OOOOOO" "KB"44 44 44 20 44 44 44 44 44 00 82 4d 00 c9 31 39 "DDD DDDDD" "M" "19"39 34 34 33 34 32 00 d0 4e 4f 39 36 36 36 35 31 "944342" "NO966651"00 00 00 00 00 00 70 f7 88 00 00 00 00 00 00 0030 32 32 20 20 41 53 00 d3 54 4f 54 41 4c 20 4b 022" AS" 總 k"4f 4e 54 52 4f 4c 4c 20 41 53 20 00 c9 30 32 38 "ONTROLL AS" "028"37 30 34 33 33 00 c9 32 30 32 31 30 32 31 31 00 "70433" "20210211"00 00 00 00 00 00 70 f7 88 00 00 00 00 00 00 00

                  這是我從卡片中讀取的方式:

                  標簽 tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);MifareClassic mfc = MifareClassic.get(tagFromIntent);

                  這是我用于在 for 循環中讀取的代碼:

                   data = mfc.readBlock(bIndex + block);

                  然后我使用將數據轉換為 UTF8 進行打印:

                   public String convertByteArrayToUTF8(byte[] bytes){字符串編碼 = null;嘗試 {編碼 = 新字符串(字節,StandardCharsets.UTF_8);}捕獲(異常 e){編碼=新字符串(字節,Charset.defaultCharset());}返回編碼;}

                  我嘗試過使用 ASCII、UTF-16 等,但沒有成功.

                  解決方案

                  所以你標簽上的數據(不包括扇區預告片看起來有點像:

                  <上一頁>C5 42 4E 49 44 00 07 4F 4F 4F 4F 4F 4F 00 4B 42 ?BNID..OOOOOO.KB44 44 44 20 44 44 44 44 44 00 82 4D 00 C9 31 39 DDD DDDDD.,M.é1939 34 34 33 34 32 00 D0 4E 4F 39 36 36 36 35 31 944342.DNO96665130 32 32 20 20 41 53 00 D3 54 4F 54 41 4C 20 4B 022 AS.óTOTAL K4F 4E 54 52 4F 4C 4C 20 41 53 20 00 C9 30 32 38 ONTROLL AS .é02837 30 34 33 33 00 C9 32 30 32 31 30 32 31 31 00 70433.é20210211.

                  這似乎是某種形式的結構化數據.簡單地將整個二進制 blob 轉換為 UTF-8(或 ASCII)編碼的字符串沒有多大意義.相反,您需要對數據的結構方式進行逆向工程(或者,更好的是,您嘗試從系統制造商處獲取規范).

                  據我所見,該數據似乎由多個以空字符結尾的字符串組成,這些字符串嵌入到某種緊湊的 (Tag)-Length-Value 格式中.第一個字節似乎是標簽(?)+長度,所以我們有

                  <上一頁>C5 長度 = 542 4E 49 44 00 BNID"07 長度 = 74F 4F 4F 4F 4F 4F 00 OOOOOO"4B 長度 = 1142 44 44 44 20 44 44 44 44 44 00 KBDDD DDDDD"82 長度 = 24D 00M"C9 長度 = 931 39 39 34 34 33 34 32 00 19944342"D0 長度 = 164E 4F 39 36 36 36 35 31 30 32 32 20 20 41 53 00 NO966651022 AS"D3 長度 = 1954 4F 54 41 4C 20 4B 4F 4E 54 52 4F 4C 4C 20 41 53 20 00 TOTAL KONTROLL AS"C9 長度 = 930 32 38 37 30 34 33 33 00 02870433"C9 長度 = 932 30 32 31 30 32 31 31 00 20210211"

                  例如,第一個字節可以分成標簽和長度,如下所示:TTTL LLLL(高 3 位編碼標簽,低 5 位編碼后續值的長度).這將給出以下標簽

                  • 0x6 表示BNID"、19944342"、NO966651022 AS"、TOTAL KONTROLL AS"、02870433"和20210211"
                  • 0x0 表示OOOOOO"
                  • 0x2 表示KBDDD DDDDD"
                  • 0x4 代表M"

                  因此,標簽和長度之間的分割也可能是 TTLL ??LLLL(高 2 位編碼標簽,低 6 位編碼后面值的長度).

                  不幸的是,該格式與我所知道的任何流行格式都不相似.因此,您可以通過比較多張不同的卡片并從值中獲取含義來繼續您的逆向工程.

                  到目前為止,為了解碼上述內容,您將從讀取第一個字節開始,從該字節中提取長度,剪切后續字節的數量并將它們轉換為字符串(基于您的示例提供,ASCII編碼應該做).然后您可以繼續下一個字節,從中提取長度信息,...

                  When reading a MIFARE card with Android and converting the data to UTF-8 I get strange characters like ?. I'm trying to build an application that can read some kind of ID card we're using. The problem now is that I get weird characters between words and some words are split between blocks so how can I safely get a word I'm looking for? For instance my readings is something like this:

                  43224???19032019?? at block 2 sektor 2 bindex :8

                  and with splitting where rest of the number starting with 19 is at a new block:

                  ?me Name???M???19

                  at block 1 sektor 1 bindex :4

                  930402???NO934951

                  at block 2 sektor 1 bindex :4

                  c5 42 4e 49 44 00 07 4f 4f 4f 4f 4f 4f 00 4b 42   "?bnid" "OOOOOO" "KB"
                  44 44 44 20 44 44 44 44 44 00 82 4d 00 c9 31 39   "DDD DDDDD" "M" "19"
                  39 34 34 33 34 32 00 d0 4e 4f 39 36 36 36 35 31   "944342" "NO966651"
                  00 00 00 00 00 00 70 f7 88 00 00 00 00 00 00 00
                  30 32 32 20 20 41 53 00 d3 54 4f 54 41 4c 20 4b   "022" "AS" "Total k"
                  4f 4e 54 52 4f 4c 4c 20 41 53 20 00 c9 30 32 38   "ONTROLL AS" "028"
                  37 30 34 33 33 00 c9 32 30 32 31 30 32 31 31 00   "70433" "20210211"
                  00 00 00 00 00 00 70 f7 88 00 00 00 00 00 00 00
                  

                  This is how I read from the card:

                  Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
                  MifareClassic mfc = MifareClassic.get(tagFromIntent);
                  

                  Here is my code I use for reading inside a for loop:

                   data = mfc.readBlock(bIndex + block); 
                  

                  and then for converting data to UTF8 for printing I use:

                     public String convertByteArrayToUTF8(byte[] bytes){
                      String encoded = null;
                      try {
                          encoded = new String(bytes, StandardCharsets.UTF_8);
                      }
                      catch (Exception e){
                          encoded = new String(bytes, Charset.defaultCharset());
                      }
                      return encoded;
                  }
                  

                  I've tried with ASCII, UTF-16 etc with no luck.

                  解決方案

                  So the data on your tag (excluding the sector trailers looks somewhat like that:

                  C5 42 4E 49 44 00 07 4F 4F 4F 4F 4F 4F 00 4B 42        ?BNID..OOOOOO.KB
                  44 44 44 20 44 44 44 44 44 00 82 4D 00 C9 31 39        DDD DDDDD.?M.é19
                  39 34 34 33 34 32 00 D0 4E 4F 39 36 36 36 35 31        944342.DNO966651
                  30 32 32 20 20 41 53 00 D3 54 4F 54 41 4C 20 4B        022  AS.óTOTAL K
                  4F 4E 54 52 4F 4C 4C 20 41 53 20 00 C9 30 32 38        ONTROLL AS .é028
                  37 30 34 33 33 00 C9 32 30 32 31 30 32 31 31 00        70433.é20210211.
                  

                  This seems to be some form of structured data. Simply converting the whole binary blob into a UTF-8 (or ASCII) encoded string doesn't make much sense. Instead, you will need to reverse engineer the way that the data is structured (or, even better, you try to obtain the specification from the system manufacturer).

                  From what I can see, it looks as if that data consisted of multiple null-terminated strings embedded into some compact (Tag)-Length-Value format. The first byte seems to be the tag(?) + length, so we have

                  C5    Length = 5
                      42 4E 49 44 00                                               "BNID"
                  07    Length = 7
                      4F 4F 4F 4F 4F 4F 00                                         "OOOOOO"
                  4B    Length = 11
                      42 44 44 44 20 44 44 44 44 44 00                             "KBDDD DDDDD"
                  82    Length = 2
                      4D 00                                                        "M"
                  C9    Length = 9
                      31 39 39 34 34 33 34 32 00                                   "19944342"
                  D0    Length = 16
                      4E 4F 39 36 36 36 35 31 30 32 32 20 20 41 53 00              "NO966651022  AS"
                  D3    Length = 19
                      54 4F 54 41 4C 20 4B 4F 4E 54 52 4F 4C 4C 20 41 53 20 00     "TOTAL KONTROLL AS "
                  C9    Length = 9
                      30 32 38 37 30 34 33 33 00                                   "02870433"
                  C9    Length = 9
                      32 30 32 31 30 32 31 31 00                                   "20210211"
                  

                  The first byte could, for instance, be split into tag and length like this: TTTL LLLL (upper 3 bits encode the tag, lower 5 bits encode the length of the following value). This would give the following tags

                  • 0x6 for "BNID", "19944342", "NO966651022 AS", "TOTAL KONTROLL AS ", "02870433", and "20210211"
                  • 0x0 for "OOOOOO"
                  • 0x2 for "KBDDD DDDDD"
                  • 0x4 for "M"

                  Hence, the split between tag and length might also be TTLL LLLL (upper 2 bits encode the tag, lower 6 bits encode the length of the following value).

                  Unfortunately, the format doesn't resemble any of the popular formats that I'm aware of. So you could just continue your reverse engineering by comparing multiple different cards and by deriving meaning from the values.

                  So far, in order to decode the above, you would start by reading the first byte, extract the length from that byte, cut that amount of follow-up bytes and convert them into a string (based on the sample that you provided, ASCII encoding should do). You can then continue with the next byte, extract the length information from it, ...

                  這篇關于閱讀 Mifare Classic 會返回奇怪的字符的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Get user#39;s current location using GPS(使用 GPS 獲取用戶的當前位置)
                  IllegalArgumentException thrown by requestLocationUpdate()(requestLocationUpdate() 拋出的 IllegalArgumentException)
                  How reliable is LocationManager#39;s getLastKnownLocation and how often is it updated?(LocationManager 的 getLastKnownLocation 有多可靠,多久更新一次?)
                  How to detect Location Provider ? GPS or Network Provider(如何檢測位置提供者?GPS 或網絡提供商)
                  Get current location during app launch(在應用啟動期間獲取當前位置)
                  locationManager.getLastKnownLocation() return null(locationManager.getLastKnownLocation() 返回 null)

                  <tfoot id='crGsk'></tfoot>
                        <i id='crGsk'><tr id='crGsk'><dt id='crGsk'><q id='crGsk'><span id='crGsk'><b id='crGsk'><form id='crGsk'><ins id='crGsk'></ins><ul id='crGsk'></ul><sub id='crGsk'></sub></form><legend id='crGsk'></legend><bdo id='crGsk'><pre id='crGsk'><center id='crGsk'></center></pre></bdo></b><th id='crGsk'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='crGsk'><tfoot id='crGsk'></tfoot><dl id='crGsk'><fieldset id='crGsk'></fieldset></dl></div>
                      1. <small id='crGsk'></small><noframes id='crGsk'>

                          <bdo id='crGsk'></bdo><ul id='crGsk'></ul>
                              <tbody id='crGsk'></tbody>
                            <legend id='crGsk'><style id='crGsk'><dir id='crGsk'><q id='crGsk'></q></dir></style></legend>

                          • 主站蜘蛛池模板: 欧美www在线观看 | 日一区二区 | 美女视频. | 免费亚洲一区二区 | 久久综合成人精品亚洲另类欧美 | 久视频在线 | 狠狠艹 | 一区二区精品在线 | 色欧美日韩 | 国产乱码精品一区二区三区五月婷 | 成人av一区 | 国产精品久久久久久久久久久久久 | 亚洲精品麻豆 | 国产精品久久久久久久免费观看 | av永久免费 | 超碰国产在线 | 成人av片在线观看 | h视频免费在线观看 | 亚洲一区二区在线视频 | 一区二区三区亚洲 | 成人做爰www免费看视频网站 | 日本三级在线视频 | 99re视频在线 | 免费av在线网站 | 日韩在线免费视频 | 欧美精品1区 | 欧美日韩专区 | 久久综合香蕉 | 亚洲精品一区二区三区在线观看 | 久久精品国产亚洲 | 成年人网站免费 | 欧美做暖暖视频 | 成人精品视频在线观看 | 在线观看国产wwwa级羞羞视频 | 依人成人| 大久| 中文一区| www.youjizz.com日韩 | 久久久久国产一区二区三区 | 久久一区二区三区四区五区 | 欧美一级在线 |