代码拉取完成,页面将自动刷新
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using ControllerClient.UserTool;
namespace ControlMachine
{
public class SignHelper
{
public static SignatureInfo getSignatureInfo(string SignDataHexString)
{
SignatureInfo SignatureInfo = new SignatureInfo();
string CaData = "";
Device device = null;
try
{
device = new Device();
//获取读卡器列表
List<string> readers = device.iniDevice();
foreach (string reader in readers)
{
Console.Out.WriteLine("读卡器名称=" + reader);
}
//初始化卡片
device.iniCPUCard(readers);
byte[] sw12 = new byte[2];
byte[] retMessage = new byte[512];
//发送APDU指令
// retMessage = device.sendAPDU("00A4040008A00000033301010100", sw12);
retMessage = device.sendAPDU("8010020000", sw12);
CaData += StringAndBytesHelper.ToHexString(retMessage, retMessage.Length);
//Console.Out.WriteLine("retMessag=" + StringAndBytesHelper.ToHexString(retMessage, retMessage.Length));
//Console.Out.WriteLine("长度=" + retMessage.Length);
//Console.Out.WriteLine("sw12=" + StringAndBytesHelper.ToHexString(sw12, sw12.Length));
retMessage = device.sendAPDU("8010020162", sw12);
CaData += StringAndBytesHelper.ToHexString(retMessage, retMessage.Length);
// Console.Out.WriteLine("CaData=" + CaData);
// Console.Out.WriteLine("长度=" + CaData.Length);
// Console.Out.WriteLine("sw12=" + StringAndBytesHelper.ToHexString(sw12, sw12.Length));
SignatureInfo.Cadata = CaData;
//5053414D49303031 用户ID
//4D494D49535F5053414D5F55534552 PIN码
string userdate = "5053414D493030314D494D49535F5053414D5F55534552";
string checkusercmd = "80200000" + Convert.ToString(StringAndBytesHelper.strToToHexByte(userdate).Length, 16) + userdate;
// Console.Out.WriteLine("checkusercmd=" + checkusercmd);
retMessage = device.sendAPDU(checkusercmd, sw12);
// Console.Out.WriteLine("sw12=" + StringAndBytesHelper.ToHexString(sw12, sw12.Length));
string signdata = SignDataHexString;
byte[] signdataB = SHA1.Create().ComputeHash(StringAndBytesHelper.strToToHexByte(SignDataHexString));
string signdatacmd = "80320000" + Convert.ToString(signdataB.Length, 16) + StringAndBytesHelper.ToHexString(signdataB, signdataB.Length) + "80";
// Console.Out.WriteLine("signdatacmd=" + signdatacmd);
retMessage = device.sendAPDU(signdatacmd, sw12);
// Console.Out.WriteLine("retMessage=" + StringAndBytesHelper.ToHexString(retMessage, retMessage.Length));
// Console.Out.WriteLine("长度=" + retMessage.Length);
// Console.Out.WriteLine("sw12=" + StringAndBytesHelper.ToHexString(sw12, sw12.Length));
signdatacmd = "00C0000080";
retMessage = device.sendAPDU(signdatacmd, sw12);
// Console.Out.WriteLine("signdata=" + StringAndBytesHelper.ToHexString(retMessage, retMessage.Length));
// Console.Out.WriteLine("长度=" + retMessage.Length);
// Console.Out.WriteLine("sw12=" + StringAndBytesHelper.ToHexString(sw12, sw12.Length));
SignatureInfo.Sighdata = StringAndBytesHelper.ToHexString(retMessage, retMessage.Length);
return SignatureInfo;
}
catch (Exception e)
{
Console.Out.Write(e.StackTrace);
return null;
}
finally
{
if (device != null)
{
device.closeDevice();
}
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。