我使用 OpenSSL(在 C++ 中)對(duì)文本進(jìn)行簽名,但是我的 Java 程序并不總是驗(yàn)證簽名的消息(只有約 5 個(gè)得到驗(yàn)證)。有趣的是https://kjur.github.io/jsrsasign/sample/sample-ecdsa.html沒(méi)有驗(yàn)證它們中的任何一個(gè):曲線名稱:secp256k1 簽名算法:SHA256withECDSA私鑰431313701ec60d303fa7d027d5f1579eaa57f0e870b23e3a25876e61bed2caa3公鑰035bcefc4a6ca257e394e82c20027db2af368474afb8917273713644f11a7cecb3失敗:text to sign= pcax2727gRo8M6vf9Vjhr1JDrQ3rdPYu6xx81000pcax273z8kaV5Ugsiqz3tvWGo8Gg6sch6V4912341535867163229signature= 3044022061dff8e39f9324b0794ec2c58abda971898f694ca980baf3c2a4045a9048b441022054a2fb8ef3d383fd7eeb31425dba440e2fd2053778d4ab3725046385c7845cff0000成功:text to sign= pcax2727gRo8M6vf9Vjhr1JDrQ3rdPYu6xx81000pcax273z8kaV5Ugsiqz3tvWGo8Gg6sch6V4912341535867122614signature= 3046022100f200d0fb9e86a16bd46ee2dd11f1840a436d0a5c6823001a516e975a44906fcf022100d062a60611fc0f21d81fa3140741c8b6e650fff33d2c48aef69a3a40d7c7b3ca爪哇private static final String SHA256WITH_ECDSA = "SHA256withECDSA";public static boolean isValidSignature(PublicKey pub, byte[] dataToVerify, byte[] signature) { try { Signature sign = Signature.getInstance(SHA256WITH_ECDSA, BouncyCastleProvider.PROVIDER_NAME); sign.initVerify(pub); sign.update(dataToVerify); return sign.verify(signature); } catch (Exception e) { log.error("Error: " + e.getMessage()); } return false;}
添加回答
舉報(bào)
0/150
提交
取消