[問題] 由 Signature.verify 反推資料

看板java作者 (CJV)時間15年前 (2010/10/10 00:28), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
不好意思,標題實在不知道怎麼下,我的問題是這樣: 我最近取得了一個原始碼,是一個驗證的 method 傳入兩個參數,大致上長這樣: PK 是由一個已知的字串經過 Base64 decode 後取得的 byte[] public boolean test(String arg1,String arg2) { X509EncodedKeySpec X509 = new X509EncodedKeySpec(PK); PublicKey pubKey =KeyFactory.getInstance("RSA").generatePublic(X509); Signature localSignature = Signature.getInstance("MD5withRSA"); localSignature.initVerify(pubKey); localSignature.update(arg1.getBytes("UTF-8")); return localSignature.verify(base64.decode(arg2)); } 這個方法應該是用來判斷傳入的 arg1 和 arg2 是否互相呼應 但是我目前手上只有一個 arg1 的值 也就是說我的問題是,能不能藉由這些已知的條件(PK、arg1、驗證方法) 取得這個 arg1 對應的 arg2 ,讓這個方法可以 return true 呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.76.13

10/10 00:37, , 1F
Signature.sign() 不知道是不是你要的
10/10 00:37, 1F

10/10 00:37, , 2F
可是 sign 需要 initSign 這部份不知道怎麼搞 > <
10/10 00:37, 2F

10/10 00:39, , 3F
有試過仿造同樣的方法建立 PrivateKey 去 initSign 但是
10/10 00:39, 3F

10/10 00:40, , 4F
使用 X509 會噴 InvalidKeyException....
10/10 00:40, 4F

10/10 02:03, , 5F
arg2(signature)需要 arg1(本文)跟 private key 才能做出來
10/10 02:03, 5F

10/10 02:06, , 6F
若你能了解Signature的用意,應該就不會有這問題了
10/10 02:06, 6F

10/10 09:30, , 7F
恩,謝囉 那我猜的沒錯QQ
10/10 09:30, 7F
文章代碼(AID): #1Ci9Ws6U (java)