已知16进制BCD编码的RSA公钥,怎么使用rsa加密?
我现在拿到一个16进制256位的rsa秘钥,怎么使用他做rsa加密啊?好像用一般的java里面的rsa加密不行吧?一直报Caused by: java.security.InvalidKeyException: invalid key format
这个错误。
比如说公钥为:D548C6267CC503F1E926776A97F8644CAA67167E8FA5D74FD1F4E0BCB3608BD1583E41B102B5B4617E53B90A0C67EA652F8D96B40CFDDA6BC1501432ADCE15E4B5B916568893C94FF3CAC5ED5942FC604BAD1B12DF7683B25C6702BD8CF1BE2F5A4FFC97C82E42FD91E49A6EFF379F5F022F36E5395D64FC9430EEFCAC55F0A5
有人知道怎么把它转成java.security.PublicKey?还是说这种公钥得自己重新写rsa加密的算法?
谢谢~ --------------------编程问答-------------------- 这个公钥是base64编码的,你把它解码成byte[]就能用了。 --------------------编程问答-------------------- 额,才看清你的标题,请无视上一回复。 --------------------编程问答-------------------- 呵呵,没事。继续等待高手 --------------------编程问答-------------------- 估计得这样才能构建一个PublicKey对象:
PublicKey publicKey =
KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));
bytes就是已知公钥的相应字节信息
补充:Java , Java SE