【发布时间】:2014-09-22 09:00:25
【问题描述】:
我正在尝试将 BigInteger privateKey 转换为 KEY,我找到了这段代码并进行了如下修改:
KeyFactory factory = KeyFactory.getInstance("RSA");
RSAPrivateKeySpec spec;
spec = new RSAPrivateKeySpec(modulus,privateKey);
RSAPrivateKey priPEM = (RSAPrivateKey) factory.generatePrivate(spec);
Cipher enc = Cipher.getInstance("RSA");
enc.init(Cipher.WRAP_MODE, priPEM);
byte[] encryptedKey = enc.wrap(priPEM);
但是,结果是:Key is too long for wrapping
Exception in thread "main" java.security.InvalidKeyException: Key is too long for wrapping
我正在使用 keysize (2048),我尝试了 1024 和 512,但仍然出现相同的输出错误。
关于如何摆脱这个错误的任何想法?
【问题讨论】:
-
看看这个问题的答案:stackoverflow.com/questions/19856324/…
-
感谢您的贡献,但是您提供的链接有不同的输出错误,无论如何我执行了解决方案中的步骤,但它并没有解决问题!
-
似乎传递给 wrap() 方法的编码私钥比密码的密钥模数长。
标签: java key biginteger