KeyFactory keyFactory = KeyFactory.getInstance("RSA");
byte[] encodedKey = BinaryUtil.fromBase64String(publicKey);
PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
java.security.Signature signature = java.security.Signature.getInstance("MD5withRSA");
signature.initVerify(pubKey);
signature.update(content.getBytes());
boolean bverify = signature.verify(sign);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要对提供的验签内容进行验证,遵循您提及的规则(url_decode(path) + query_string + ‘\n’ + body),请按照以下步骤操作:
准备数据:
/oss/callbackMethod
,无需解码,因为路径中没有百分号编码。filename=dp_dev/wmg11.jpg
,同样这里没有需要URL解码的部分。构造待签名字符串: 根据规则组合各部分,得到待签名字符串:
/oss/callbackMethod\nfilename=dp_dev/wmg11.jpg\n
注意最后有一个换行符\n
,表示Path和Query String之间以及Query String结束与假设的空Body之间各有一个换行。
获取并解码签名: 验证签名时,需要从HTTP请求头中的Authorization
字段获取原始签名,并对其进行Base64解码以得到用于对比的签名值。此步骤需在具体实现环境中完成,当前信息未提供具体的签名值,因此无法直接演示解码过程。
使用公钥验证签名:
x-oss-pub-key-url
获取公钥URL,并执行Base64解码以得到真实的公钥地址。rsa_verify
方法。注意:由于缺少实际的签名值和公钥信息,以上步骤仅提供了验证流程的指导框架。在实际操作中,确保所有必要参数齐全,并正确执行每一步骤,才能有效验证签名的真实性。