.net C#使用私钥sign公钥验证 验证JWS signature data

回顾:项目数据安全需要,对数据使用私钥签名,公钥验证。'RSA-SHA256'加密方式。

1.   读取证书有两种方法,第一种是直接把.pfx 安装到server里直接然后code里直接读取,第二种是直接根据证书物理物理路径和密码直接读取证书信息。推荐第一种会速度更快一些。 第一种,从server读取证书,可以根据subject名字,也可以导入时设置friendly name,查找该证书,然后一定要在管理key的属性中给iis_iusrs读取操作权限。不然private key 没有权限读取,会有error. 

        public string SignatureFormatter(string privateKeyPath, string SignatureData, string certPassword)
        {                                              //第一种                                                                                       //第二种

            X509Certificate2 c3 = DataCertificate.GetCertificateFromStore("证书subject");//new X509Certificate2(privateKeyPath, certPassword, X509KeyStorageFlags.Exportable);

            string keyPrivate3 = c3.PrivateKey.ToXmlString(true);
            byte[] signData = System.Text.Encoding.UTF8.GetBytes(SignatureData); 
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
            RSA.FromXmlString(keyPrivate3);
            byte[] inArray = RSA.SignData(signData, CryptoConfig.MapNameToOID("SHA256"));
            return Convert.ToBase64String(inArray);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值