亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SHA1withECDSA 使用的是哪條曲線?

SHA1withECDSA 使用的是哪條曲線?

料青山看我應如是 2022-12-15 17:00:33
我正在使用 SHA1withECDSA 來驗證我的 Java 應用程序中的簽名消息?,F在我想用另一種編程語言(node/js)創建第二個應用程序來創建這些簽名消息。但是我找不到任何具有“SHA1withECDSA”的 api。它們都只支持具有選定曲線的 ECDSA。所以我的問題是:java 使用的是哪條 ec 曲線?關鍵工廠: final KeyFactory keyFactory = KeyFactory.getInstance("EC");簽名: final Signature dsa = Signature.getInstance("SHA1withECDSA");
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

{hash}withECDSAJava 中的算法支持可以在ECPrivateKey傳遞給對象Signature.initSign(key)或(您的情況)ECPublicKey傳遞給Signature.initVerify(key)標準 SunEC 提供者的對象中表示的任何曲線,這些曲線是 X9.62 (Weierstrass) form 表示的任何曲線。除了Bernstein 等人的{Curve,X,Ed}{25519,448}(EdDSA 是一種橢圓曲線簽名算法,但不是名為 ECDSA的算法),這基本上是當今使用的所有算法。


標準 X9/NIST 和 TLS 曲線是預定義的,盡管(編輯)訪問它們而不是生成密鑰有點笨拙;請參閱如何將公共 EC 代碼點和曲線名稱轉換為 PublicKey?.


通常,密鑰對應由簽名者生成,并且(僅)將公鑰在簽名和簽名數據之前或與簽名和簽名數據一起分發給驗證者;通常這是以證書的形式完成的,這樣可以避免產生漏洞的手動操作和手動錯誤。Java 直接支持 X.509 證書,以及它們使用的公鑰格式(SubjectPublicKeyInfo aka SPKI);請參閱 和 的java.security.spec.X509EncodedKeySpecjavadoc java.security.Key。對于 EC,SPKI 包括曲線標識,但不幸的是,Java API 沒有提供方便的方法將其取回。


如果您有一個 X.509 證書或文件中公鑰的 X.509 SPKI,無論是 DER 還是 PEM 格式,并且有 OpenSSL,它可以解碼并顯示此信息:


 openssl x509 -in certfile -inform {der|pem} -text 

 openssl pkey -in spkifile -inform {der|pem} -pubin -text # 1.0.0 up

 openssl ec -in spkifile -inform {der|pem} -pubin -text # 0.9.x 

 # look at the line labelled ASN1 OID:


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號