2016-07-13 6 views
1

스마트 카드를 읽으려고하고 있는데 스마트 카드에서 일부 데이터를 가져올 수있었습니다. 내가 직면 한 문제는 스마트 카드에서 CardHolder 이름을 얻는 방법입니다. 5F20 카드 소지자의 이름을 사용하는 동안 정말 카드에서이 필드를 얻는 데 사용하는 형식을 모르는 내가CardHolder 이름을 얻는 방법

if(emv_is_tag_present(0x5F20) >=0){ 
           tagDataLength = emv_get_tag_data(0x5F20, tagData, tagData.length); 
           if(debug)Log.d(APP_TAG, "Carder "+ tagDataLength); 
           appState.trans.setuserName(StringUtil.toString(AppUtil.removeTailF(ByteUtil.bcdToAscii(tagData,0, tagDataLength)))); 
          } 

는 ISO 7813 카드 ANS 2-26 '에 따라 카드 소유자 이름을 나타냅니다 내가 here

이로부터받은 70 '또는'77 '이 26 원시는 ... 그것은 "00000380Ñ`를 다시 제공 내가 문자열로 그것을 변환하려고 할 때마다 내가, 3030303030333830D160222101..but을 얻고 출력입니다! 실제로는 카드 소지자의 이름이 아닙니다.

문서를 읽는 중 (해당 링크가 게시 됨), 데이터를 가져 오는 데 올바른 형식을 사용하고 있는지 확실하지 않습니다. cos에서, 나는 2-26의 ans를 가지고있다. 나는 그것이 무엇을 의미하는지 정말로 이해하지 못한다.

+0

카드에 보낸 기록이 있습니까? – adarsh

답변

1

태그 5F20 - 당신이해야 할 것은 문자열 값을 변환하는 것입니다 ASCII 문자의 16 진수 값, 당신은 얻을 것이다 - 카드가이 태그의 값을 반환하는 경우 카드 소지자 이름, 값은 진수 문자열이 될 것입니다 카드에서 개인화 된 가치.

in the document, i have ans 2-26. I do not really understand what it means. 

때때로 우리는 카드 내부에 카드 소유자 이름을 개인 피하고 우리는 "/" 개인화 - 공간/= 2 문자 하였다. 다른 EMV 사양에 정의 된 태그 5F20의 최소값입니다. 최대 값은 26이므로 태그 5F20에 2-26이 사용됩니다.

이 정보가 도움이 될 것입니다 ..

+0

이 정보를 제공해 주셔서 감사합니다. 이전에 MasterCard (3030303030333830D160222101)를 사용하고 있었지만, Verve Card를 사용하면 이름을 알 수있었습니다. Master Card에 카드 이름이 없습니까? ? .... 나는 코드에서 아무 것도 변경하지 않았습니다. 카드 유형을 변경하는 것뿐이었습니다. –

+0

MasterCard에서 이러한 제한 사항을 들었지만이 태그가 유효한 값으로 5f20 태그를 발견했습니다. AFL에 카드가있을 경우, 카드는 귀하에게 개인화 된 동일한 가치를 제공 할 것입니다. EMV 카드에서 5f20 태그를 읽으려면 어떻게해야합니까? – Arjun

+0

파일을 선택하고 처리 옵션을 가져 와서 레코드를 읽은 다음 데이터를 가져옵니다 ... 데이터를 읽을 때 걸리는 단계입니다. 그러나, 나는 똑바로 출력을 받고있다.. verve 한 카드를 읽고있는 동안. .. 나는 무엇인가 잘못하고있다. .. 5f20와 더불어? –