我正在尝试为Web服务调用手动创建签名标签。我从密钥库访问了证书,并访问了证书的公钥。我现在在将RSAKeyValue转换为ds:CryptoBinary类型时遇到了问题。代码返回小数和指数的Biginteger值,我正在寻找一种方法或算法,将它们转换为八位字节,然后转换为Bas64。这是我的代码
RSAPublicKey rsaKey = (RSAPublicKey)certificate.getPublicKey();
customSignature.Modulus = rsaKey.getModulus();
customSignature.Exponent = rsaKey.getPublicExponent();
Java是否有任何解决方案可用于将整数转换为八位字节表示形式?
最佳答案
尝试使用apache commons编解码器框架执行以下代码:
BigInteger modulus = rsaKey.getModulus();
org.apache.commons.codec.binary.Base64.encodeBase64String(modulus.toByteArray());