我目前正在开发一个集成代码,其中在发送请求XML之前,我需要对其进行数字签名。我对此进行了很多研究。
初始xml:
<?xml version ="1.0" encoding="utf-8">
<command>
some xml
</command>
结果XML必须为:
<?xml version="1.0" encoding ="utf-8">
<command>
some xml...
<signature>
some signature value...
</signature>
</command>
我正在使用的代码是:
`SecureRandom secureRandom = new SecureRandom();
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA");
KeyPair keyPair = keyPairGenerator.generateKeyPair();
Signature signature = Signature.getInstance("SHA1WithRSA");
signature.initSign(keyPair.getPrivate(), secureRandom);
byte[] data = myxmlstring.getBytes("UTF-8");
signature.update(data);
byte[] digitalSignature = signature.sign();