ic卡的寫入動作?? |
尚未結案
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
這一段也是vc的語法,其中
m_edtData.GetWindowText((char*)szSendBuff, sizeof(szSendBuff));這一行是將畫面上的text元件的內容存到szSendBuff裡,以便寫入ic卡裡面.不過這要在bcb我試過改為 szSendBuff = Edit1->Text; 這樣不行.請問這行該如何修改? 然後這行if(Tran2To1((char*)szSendBuff,dwWriteBytes*2)==FALSE)
是驗証szSendBuff的長度是否正確,為何在szSendBuff前面要加((char*)在bcb是不是也是要加? 多謝先進幫忙我,不然我實在是解不出來!!^^,謝謝
///////////////////////////////////////////////////////////////
void CTestEZ4442Dlg::OnWrite()
{
DWORD dwBlock, dwWriteBytes=16;
CString sOutput,s1;
BYTE szSendBuff[256]; memset(szSendBuff, 0, sizeof(szSendBuff));
dwBlock = m_cboBlockNum.GetCurSel();
m_edtData.GetWindowText((char*)szSendBuff, sizeof(szSendBuff));
if(dwBlock == 10)
dwWriteBytes = 64;
if(Tran2To1((char*)szSendBuff,dwWriteBytes*2)==FALSE)
{
AfxMessageBox("不合法的內容或長度不足32碼");
return;
}
if(icWrite(dwBlock, szSendBuff, dwWriteBytes)==FALSE)
AfxMessageBox("icWrite() fail");
else
AfxMessageBox("Write success.");
} BOOL Tran2To1(char *szVerify, int nLeng)
{
char szTemp[256];
int nSub = 0;
lstrcpy(szTemp, szVerify);
memset(szVerify, 0, nLeng);
for(int i=0;i
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
這一段也是vc的語法,其中
m_edtData.GetWindowText((char*)szSendBuff, sizeof(szSendBuff));這一行是將畫面上的text元件的內容存到szSendBuff裡,以便寫入ic卡裡面.不過這要在bcb我試過改為 szSendBuff = Edit1->Text; 這樣不行.請問這行該如何修改?
strcpy(szSendBuff, Edit1->Text.c_str()); 然後這行if(Tran2To1((char*)szSendBuff,dwWriteBytes*2)==FALSE)
是驗証szSendBuff的長度是否正確,為何在szSendBuff前面要加((char*)在bcb是不是也是要加?
是的, 在BCB最好也要加, 因為BOOL Tran2To1(char *szVerify, int nLeng)的第一個參數要的是char* 型態, 但szSendBuff 是一個BYTE陣列, 所有加上去告訴compiler把szSendBuff當成char* 來使用.(雖然我在BCB5裡不加也可以編過)
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
小弟不才再請教這位先進大人,以下是在讀取時的動作,別人提供在vc的範例裡讀出來的值為11111111111111111111111111111111 而我根據您另一篇給我的方法
s1 = Format("%2x", ARRAYOFCONST((szRecvBuff[i])));
結果讀出來是E8F512 0 0 0 0 0CCF512 011111111 我一連看了好幾個晚上實在看不出那裡出問題了 //=================這段是vc的語法(別人提供的)===================//
void CTestEZ4442Dlg::OnRead()
{
// TODO: Add your control notification handler code here
DWORD dwBlock, dwReadBytes=16;
CString sOutput,s1;
BYTE szRecvBuff[256]; memset(szRecvBuff, 0, sizeof(szRecvBuff));
dwBlock = m_cboBlockNum.GetCurSel();
if(dwBlock == 10)
dwReadBytes = 64;
if(icRead(dwBlock, szRecvBuff, dwReadBytes)==FALSE)
AfxMessageBox("icRead() fail");
for(DWORD i=0;i
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言: 小弟不才再請教這位先進大人,以下是在讀取時的動作,別人提供在vc的範例裡讀出來的值為11111111111111111111111111111111 而我根據您另一篇給我的方法 s1 = Format("%2x", ARRAYOFCONST((szRecvBuff[i]))); 結果讀出來是E8F512 0 0 0 0 0CCF512 011111111 我一連看了好幾個晚上實在看不出那裡出問題了 //=================這段是vc的語法(別人提供的)===================// void CTestEZ4442Dlg::OnRead() { // TODO: Add your control notification handler code here DWORD dwBlock, dwReadBytes=16; CString sOutput,s1; BYTE szRecvBuff[256]; memset(szRecvBuff, 0, sizeof(szRecvBuff)); dwBlock = m_cboBlockNum.GetCurSel(); if(dwBlock == 10) dwReadBytes = 64; if(icRead(dwBlock, szRecvBuff, dwReadBytes)==FALSE) AfxMessageBox("icRead() fail"); for(DWORD i=0;i你漏了紅字部份, 如果加上去後結果還是一樣那就是你讀出來的資料是錯的, 建議用debugger trace看看讀出的結果是否全為1. void CTestEZ4442Dlg::OnRead() { // TODO: Add your control notification handler code here DWORD dwBlock, dwReadBytes=16; CString sOutput,s1; BYTE szRecvBuff[256]; memset(szRecvBuff, 0, sizeof(szRecvBuff)); dwBlock = m_cboBlockNum.GetCurSel(); if(dwBlock == 10) dwReadBytes = 64; if(icRead(dwBlock, szRecvBuff, dwReadBytes)==FALSE) AfxMessageBox("icRead() fail"); for(DWORD i=0;i |
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
|
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
|
kcin
一般會員 發表:0 回覆:18 積分:3 註冊:2005-01-21 發送簡訊給我 |
|
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|
aamihcom
一般會員 發表:57 回覆:40 積分:19 註冊:2003-10-02 發送簡訊給我 |
|
pkhoward
一般會員 發表:1 回覆:5 積分:1 註冊:2004-05-17 發送簡訊給我 |
|
pkhoward
一般會員 發表:1 回覆:5 積分:1 註冊:2004-05-17 發送簡訊給我 |
|
maueking2
一般會員 發表:6 回覆:5 積分:2 註冊:2004-07-05 發送簡訊給我 |
有本書叫智慧卡技術實務
好像關於晶片卡只有這本,可以去天隴問問
如果你要從事這方面的研究建議你上SUN的JAVACARD&IBM JCOP的網站
現在開放的好像只有Global Platform,MULTOS好像有綁規格
除非你是玩Nective Card(就是那個 castle出的)
一般只是Base 在ISO 7816 上玩APDU Command
IBM有免費的Certificate Tool Kit(打JCOP 看看應該有)
各家ChipCard的APDU Command如果不是Base在EMV SPEC的話
舉凡Loyalty,Coupon之類的各嘉出的應該都不同,
如果你要Per AP進去就要取得ENC&MAC Key(在過 Preissurance後)做certificate還有一個KEK Key
理論上都不難 ^ ^",就看您怎麼去應用
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
lialexes
一般會員 發表:0 回覆:1 積分:0 註冊:2004-10-19 發送簡訊給我 |
發表於 - 2005/01/26 : 10:23:02
-------------------------------------------------------------------------------- 引言:
-------------------------------------------------------------------------------- 我把整個project寄給你了,您試試吧.... -------------------------------------------------------------------------------- 對不起大大,請問一下是否可以也寄給我ㄧ份嗎?alex@verygo.com.tw
我最近也是在研究如何應用IC卡讀卡機但是一直不得其門也入,也請您請幫幫小弟,謝謝您 ^_^~~
|
umhibuki
一般會員 發表:0 回覆:2 積分:0 註冊:2004-02-12 發送簡訊給我 |
是否可以也給我一份.....lungjay@yahoo.com.tw
感謝大大....小弟目前想做使用IC卡來做認證的程式..想參考一下
|
pokemf
一般會員 發表:5 回覆:12 積分:3 註冊:2002-05-24 發送簡訊給我 |
|
DemonChang
一般會員 發表:0 回覆:1 積分:0 註冊:2005-05-19 發送簡訊給我 |
|
jimichou
一般會員 發表:0 回覆:1 積分:0 註冊:2004-12-03 發送簡訊給我 |
|
spencerkuo
一般會員 發表:21 回覆:34 積分:11 註冊:2003-08-15 發送簡訊給我 |
|
anson603
一般會員 發表:3 回覆:6 積分:1 註冊:2005-05-30 發送簡訊給我 |
|
demon1042001
一般會員 發表:14 回覆:19 積分:6 註冊:2002-06-12 發送簡訊給我 |
|
casper97
一般會員 發表:13 回覆:18 積分:11 註冊:2004-12-30 發送簡訊給我 |
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |