看板 java 關於我們 聯絡資訊
不好意思,標題實在不知道怎麼下,我的問題是這樣: 我最近取得了一個原始碼,是一個驗證的 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
LPH66:Signature.sign() 不知道是不是你要的 10/10 00:37
darkk6:可是 sign 需要 initSign 這部份不知道怎麼搞 > < 10/10 00:37
darkk6:有試過仿造同樣的方法建立 PrivateKey 去 initSign 但是 10/10 00:39
darkk6:使用 X509 會噴 InvalidKeyException.... 10/10 00:40
kogrs:arg2(signature)需要 arg1(本文)跟 private key 才能做出來 10/10 02:03
kogrs:若你能了解Signature的用意,應該就不會有這問題了 10/10 02:06
darkk6:恩,謝囉 那我猜的沒錯QQ 10/10 09:30