问题描述
//初始化读卡器Int16icdev=IC.rf_init(1,9600);textBox1.Text=icdev.ToString();if(icdev<0){MessageBox.Show("端口初始化失败,请检查接口线是否连接正确。","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Information);IC.rf_exit(icdev);}//寻卡ulongsnr;Int16st=IC.rf_card(icdev,0,outsnr);if(st!=0){MessageBox.Show("MCM寻卡失败","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Information);IC.rf_exit(icdev);}textBox2.Text=st.ToString();textBox3.Text="卡号:"+snr.ToString();//装载密码byte[]pwd=newbyte[3]{255,255,255};//Int16lk=IC.rf_load_key(icdev,0,8,pwd);Int16lk=IC.rf_load_key(icdev,0,8,pwd);if(lk!=0){MessageBox.Show("装密码失败","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Information);IC.rf_exit(icdev);}//密码验证--前面都对,到这一步出问题了,请大侠们帮忙啊,一下两个,用哪个也不对。//Int16at=IC.rf_authentication(icdev,0,8);//0为验证模式,表示密码A;8表示8号扇区Int16at=IC.rf_authentication_2(icdev,0,8,0);//验证8号扇区0号块if(at!=0){MessageBox.Show("验证密码失败","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Information);IC.rf_exit(icdev);}————————————————————————————————————库函数如下://验证密码[DllImport("mwrf32.dll",EntryPoint="rf_authentication",SetLastError=true,CharSet=CharSet.Ansi,ExactSpelling=true,CallingConvention=CallingConvention.StdCall)]publicstaticexternInt16rf_authentication(Int16icdev,bytemode,byteSecNr);//验证密码2[DllImport("mwrf32.dll",EntryPoint="rf_authentication_2",SetLastError=true,CharSet=CharSet.Auto,ExactSpelling=false,CallingConvention=CallingConvention.StdCall)]publicstaticexternInt16rf_authentication_2(inticdev,bytemode,byteSecNr,Int16blocknr);
解决方案
解决方案二:
读IC卡吗?
解决方案三:
我也遇到密码验证失败,请问楼主解决了吗?
解决方案四:
以前我做的byte[]_Key={0xff,0xff,0xff,0xff,0xff,0xff};//12位密码,初始默认为FFFFFFFFFFFFstring[]strArrayInfo=newstring[3];boolbolIsReadSuccess=true;if(rf_load_key(icDev,byteCardFindMode,1,_Key)!=0){bolIsReadSuccess=false;}else{if(rf_authentication(icDev,byteCardPwdMode,1)==0)//进行验证{for(inti=0;i<3;i++){if(rf_read(icDev,(byte)(i+4),_Data)==0)//从第一扇区的1,2,3块(绝对地址4-6块)取数据{rf_decrypt(byteKey,_Data,16,byteDecryptValue);//使用密钥将密文转换为明文,格式为byte数组strArrayInfo[i]=Encoding.Default.GetString(byteDecryptValue);//将byte数组明文转换为字符串明文strArrayInfo[i]=strArrayInfo[i].Trim();}else{bolIsReadSuccess=false;}}}else{bolIsReadSuccess=false;}}
解决方案五:
我的程序也差不多,rf_authentication就是验证失败了!
解决方案六:
解决方案七:
我也遇到了这个问题,怎么解决呀
解决方案八:
写IC卡的孩子们伤不起呀。曾经做过多家的读卡、写卡程序,有的厂家卡片不太稳定,伤不起。问厂家也不了了之,没找出问题。你自己找更费劲了。
解决方案九:
我现在遇到的问题更去了,用Web形式使用IC读写器,在客户机找不到,只能插到服务器上使用?这个问题怎么解决。。。总不能再从服务器拉根线,哈哈。。。
解决方案十:
byte[]hexkey=newbyte[6]{0xff,0xff,0xff,0xff,0xff,0xff};intresult=URF.rf_load_key(_icdev,0,0,hexkey);result=URF.rf_authentication(_icdev,0,8);rf_authentication_2我感觉你那个参数写的不对,验证八扇区0块,那个块是绝对块数应该为32,扇区数应该为你装载密码存储的扇区吧。我也还没有解决第二个函数,贴主要是解决了,记得我们交流一下吧~!~
解决方案十一:
不好意思写错了应该是intresult=URF.rf_load_key(_icdev,0,8,hexkey);