0

好的,所以我一直在搞乱 java 中的加密/解密,而我创建的加密使用不可打印/特殊字符。然后,我在注册表中创建了一个条目,以便当您右键单击文件时,我可以在 Windows 上下文菜单中选择加密或解密文件。它加密文件内容和文件名。Windows 显示这些文件名没有问题,但是当我尝试解密文件时,我得到错误和FileNotFoundExceptions,因为命令提示符将 ?s 之类的东西代替了不可打印的字符。那么如何将这些文件名/字符传递给我的 jar 文件,以便它可以解密文件?

这是 Windows 上下文菜单 Decrypt 按钮调用来解密文件的批处理文件:

java -jar "E:\IdeaProjects\Encryption\out\artifacts\Encryption_jar2\DecryptContext.jar" "%1"

代码转换为 Base64

private String encodeBase64(String s) {
    return new String(Base64.getEncoder().encode(s.getBytes()));
}

然后用于获得:

String newFileName = encodeBase64(encryptedString);
file.renameTo(new File(newFileName + ".txt"));
4

0 回答 0