首页 新闻 会员 周边 捐助

求C#实现JAVA中SHA1withECDSA数字签名

0
悬赏园豆:20 [已解决问题] 解决于 2023-02-11 09:48

Java代码如下

//密钥
String key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

byte[] keyByte = Base64.decodeBase64(key);
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(keyByte);
KeyFactory keyFactory = KeyFactory.getInstance("EC");
PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);

Signature signature = Signature.getInstance("SHA1withECDSA");
signature.initSign(privateKey);
signature.update("1122334455667788".getBytes());
byte[] res = signature.sign();
System.out.println("签名:" + Base64.encodeBase64String(res));

看网上的解决方案, GetPrivateKeyParameter(key);改怎么实现
AsymmetricKeyParameter priKey = GetPrivateKeyParameter(key);
byte[] byteData = System.Text.Encoding.UTF8.GetBytes(data);

    ISigner normalSig = SignerUtilities.GetSigner("SHA1withECDSA");
    normalSig.Init(true, priKey);
    normalSig.BlockUpdate(byteData, 0, byteData.Length);
    byte[] normalResult = normalSig.GenerateSignature(); //签名结果
    return Convert.ToBase64String(normalResult);
学之乐的主页 学之乐 | 初学一级 | 园豆:33
提问于:2023-02-10 16:36
< >
分享
最佳答案
0

参考园子里的博文:.NET Core RSA PKCS8 格式 签名/验签

收获园豆:20
dudu | 高人七级 |园豆:29570 | 2023-02-10 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册