JAVA RSA
学习Java,可考取Oracle的Java SE或EE认证 #生活技巧# #工作学习技巧# #技能培训认证#
RSA 加载公钥时:[color=red]Caused by: java.security.InvalidKeyException: IOException: DerInputStream.getLength(): lengthTag=127, too big.[/color]
加载公钥代码段:
public static String getPubKeyByCer(String cerPath) { String pubKey = ""; try { CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); FileInputStream in = new FileInputStream(cerPath); Certificate certificate = certificateFactory.generateCertificate(in); in.close(); PublicKey publicKey = certificate.getPublicKey(); pubKey = Base64Utils.encode(publicKey.getEncoded()); } catch (CertificateException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) {e.printStackTrace();} return pubKey; }
解决办法:[color=red]加载错误-->去掉文件中的首尾行BEGIN,END[/color]
加载方法改为:
public static String loadPublicKeyByFile(String path) throws Exception { try { BufferedReader br = new BufferedReader(new FileReader(path)); String readLine = null; StringBuilder sb = new StringBuilder(); while ((readLine = br.readLine()) != null) { sb.append(readLine); } br.close(); return sb.toString(); } catch (IOException e) { throw new Exception("公钥数据流读取错误"); } catch (NullPointerException e) { throw new Exception("公钥输入流为空"); } }
网址:JAVA RSA https://www.yuejiaxmz.com/news/view/178059
相关内容
JAVA题目Java
robot java
java旧物捐赠app(ssm)
java家庭安防系统(ssm)
Java 在生活中的 10 大应用
10年Java面试总结:Java程序员面试必备的面试技巧
MelvorIdleCheatEngine
java健康饮食管理系统(ssm)
Java HotSpot(TM) 64