我在解码文本文件时遇到了问题。
加密有效,但重新启动程序时,解密会引发异常。 Exception
抛出了相同的apache.common.Base64
。
也许有人知道如何解决这个问题?
private String decrypt(String encrypted) throws Exception {
Cipher cipher = getCipher(Cipher.DECRYPT_MODE);
//byte[] plainBytes = cipher.doFinal(Base64.decodeBase64(encrypted));
/*this line throw an exception*/
byte[] plainBytes = cipher.doFinal(Base64.getDecoder().decode(encrypted));
return new String(plainBytes);
}
private Cipher getCipher(int cipherMode) throws Exception {
String encryptionAlgorithm = "AES";
SecretKeySpec keySpecification = new SecretKeySpec(
encryptionKey.getBytes("UTF-8"), encryptionAlgorithm);
Cipher cipher = Cipher.getInstance(encryptionAlgorithm);
cipher.init(cipherMode, keySpecification);
return cipher;
}
Exception in thread "main" java.lang.NullPointerException
at java.util.Base64$Decoder.decode(Base64.java:549)
at edmaker.EdMaker.decrypt(EdMaker.java:148)
听javadebug 无法提交断点MethodBreakpoint [fsiteratetest.FsIterateTest $ 1] .visitFile'(Ljava / nio / file / Path; LBasicFileAttributes;)Ljava / nio / file / FileVisitResult;',原因:断点属于禁用的源root' C:\ Users \ win7p \ Documents \ NetBeansProjects \ FsIterateTest \ src'。请参见窗口/调试/源。 用户程序正在运行 用户程序已停止 调试器在无法编译的源代码上停止。 用户程序正在运行 用户程序完成