大致的步骤是
A、选定要操作的扇区(共有16个扇区);
B、装载密码,调用rf_load_key()
C、验证密码,调用rf_authentication()
D、进行操作,包括读写及值操作。
E、调用rf_halt()我现在能加载密码,但是总是通不过验证。现在我写死的密码是_Key = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },不知道是不是这些写,还是从哪里读出密码再加载。但是不通过验证就不能读卡里的数据请做过这方面程序的朋友帮帮忙。。我用的是明华KRF35读卡器,M1射频卡。
byte[] _Key = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
byte sector = 0;
string strErrMsg = string.Empty; for (int i = 0; i < 16; i++)
{
if (rf_load_key(icDev, byteCardFindMode, sector, _Key) != 0)
{
strErrMsg += sector.ToString() + "扇区装载密码失败\r\n";
}
else
{
if (rf_authentication(icDev, byteCardPwdMode, sector) == 0)//进行验证
{
if (rf_read(icDev, (byte)(sector * 4 + 1), ref _Data) == 0)
{
DisplayInfo(rtbICCard, System.Text.Encoding.Default.GetString(_Data));//将读出的信息显示到RichTextBox中
}
}
else
{
strErrMsg += sector.ToString() + "扇区密码验证失败\r\n";
}
}
sector++;
} //如果有错误信息则提示
if (strErrMsg != "")
{
MessageBox.Show(strErrMsg,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
bolIsICCardFound = false;
rf_halt(icDev);
}
A、选定要操作的扇区(共有16个扇区);
B、装载密码,调用rf_load_key()
C、验证密码,调用rf_authentication()
D、进行操作,包括读写及值操作。
E、调用rf_halt()我现在能加载密码,但是总是通不过验证。现在我写死的密码是_Key = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },不知道是不是这些写,还是从哪里读出密码再加载。但是不通过验证就不能读卡里的数据请做过这方面程序的朋友帮帮忙。。我用的是明华KRF35读卡器,M1射频卡。
byte[] _Key = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
byte sector = 0;
string strErrMsg = string.Empty; for (int i = 0; i < 16; i++)
{
if (rf_load_key(icDev, byteCardFindMode, sector, _Key) != 0)
{
strErrMsg += sector.ToString() + "扇区装载密码失败\r\n";
}
else
{
if (rf_authentication(icDev, byteCardPwdMode, sector) == 0)//进行验证
{
if (rf_read(icDev, (byte)(sector * 4 + 1), ref _Data) == 0)
{
DisplayInfo(rtbICCard, System.Text.Encoding.Default.GetString(_Data));//将读出的信息显示到RichTextBox中
}
}
else
{
strErrMsg += sector.ToString() + "扇区密码验证失败\r\n";
}
}
sector++;
} //如果有错误信息则提示
if (strErrMsg != "")
{
MessageBox.Show(strErrMsg,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
bolIsICCardFound = false;
rf_halt(icDev);
}
如果正常的话应该返回0才对。