作者darkk6 (CJV)
看板java
标题[问题] 由 Signature.verify 反推资料
时间Sun Oct 10 00:28:35 2010
不好意思,标题实在不知道怎麽下,我的问题是这样:
我最近取得了一个原始码,是一个验证的 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
1F:推 LPH66:Signature.sign() 不知道是不是你要的 10/10 00:37
2F:→ darkk6:可是 sign 需要 initSign 这部份不知道怎麽搞 > < 10/10 00:37
3F:→ darkk6:有试过仿造同样的方法建立 PrivateKey 去 initSign 但是 10/10 00:39
4F:→ darkk6:使用 X509 会喷 InvalidKeyException.... 10/10 00:40
5F:→ kogrs:arg2(signature)需要 arg1(本文)跟 private key 才能做出来 10/10 02:03
6F:→ kogrs:若你能了解Signature的用意,应该就不会有这问题了 10/10 02:06
7F:→ darkk6:恩,谢罗 那我猜的没错QQ 10/10 09:30