C#/.NET 电子口岸IC卡/UKEY用WebSocket方式进行读卡/数据加签

一、握手成功

        public static void Init()
        {
            websocket = new WebSocket("127.0.0.1:61231");
            websocket.Opened += new EventHandler(websocket_Opened);
            websocket.Error += new EventHandler<SuperSocket.ClientEngine.ErrorEventArgs>(websocket_Error);
            websocket.Closed += new EventHandler(websocket_Closed);
            websocket.MessageReceived += websocket_MessageReceived;
            websocket.Open();
        }

二、读卡

/// <summary>
        /// GetCardUserInfoAll
        /// </summary>
        /// <returns></returns>
        public static string GetCardUserInfoAll(string pwd, string method)
        {
            dynamic send = new ExpandoObject();
            send._id = i;
            send._method = method;

            dynamic args = new ExpandoObject();
            args.userpin = pwd;

            send.args = args;

            var sendMess = JsonHelper.Instance.Serialize(send);

            websocket.Send(sendMess);

            i++;

            while (res.IndexOf(method) < 0)
            {
                Thread.Sleep(3000);
            }
            return res.ToString(); //icCard

        }

三、签名

/// <summary>
        /// SpcSignData
        /// </summary>
        /// <returns></returns>
        public static string SignData(string pwd, string signData, string method)
        {
            dynamic send = new ExpandoObject();
            send._id = i;
            send._method = method;

            dynamic args = new ExpandoObject();
            args.passwd = pwd;
            args.inputData = signData;

            send.args = args;

            var sendMess = JsonHelper.Instance.Serialize(send);

            websocket.Send(sendMess);
            i++;

            while (res.IndexOf(method) < 0)
            {
                Thread.Sleep(500);
            }

            return res.ToString();
        }

有需要可以私信我或留下邮箱

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个使用C#编写PDF文件并进行数字签章的示例代码: ```csharp using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; using System.Security.Cryptography.X509Certificates; public void SignPdf() { //定义需要签名的PDF文件路径 string pdfFilePath = "test.pdf"; //定义数字证书的Ukey路径 string ukeyPath = "ukey.pfx"; //读取PDF文件 PdfReader reader = new PdfReader(pdfFilePath); using (MemoryStream ms = new MemoryStream()) { //创建签名后的PDF输出流 using (PdfStamper stamper = PdfStamper.CreateSignature(reader, ms, '\0')) { //获取PDF文档属性 PdfSignatureAppearance appearance = stamper.SignatureAppearance; appearance.Reason = "签名原因"; appearance.Location = "签名地点"; appearance.SetVisibleSignature(new Rectangle(100, 100, 200, 200), 1, "signature"); //获取数字证书 X509Certificate2 cert = new X509Certificate2(ukeyPath, "password"); //设置数字签章 IExternalSignature signature = new X509Certificate2Signature(cert, "SHA-1"); MakeSignature.SignDetached(appearance, signature, new[] { cert }, null, null, null, 0, CryptoStandard.CMS); //保存签名后的PDF文件 File.WriteAllBytes("signed.pdf", ms.ToArray()); } } } ``` 在上面的代码中,我们使用 `iTextSharp` 库来读取PDF文件、创建签名后的PDF输出流以及设置数字签章。我们使用 `X509Certificate2` 类来获取数字证书,然后使用 `X509Certificate2Signature` 类来创建数字签章。最后,我们使用 `MakeSignature.SignDetached` 方法将数字签章应用到PDF文件中,并保存签名后的PDF文件。 请注意,以上代码仅为示例,具体实现方式可能因为不同的Ukey设备而有所不同。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值