我在试图打开pdf文件以读取其内容并将数据映射回pdf时收到错误。错误是:com。itextpdf。文本例外。InvalidPDException:com上未知的加密类型R=6。itextpdf。文本pdf。PdfReader。readPdf(PdfReader.java:631)
我使用的是java 1.6、Itext 5.4.1和bouncycastle 1.48。pdf创建为1.7版,加密为256位AES。有没有人用Java阅读这种加密pdf的例子。
目前我的代码读取所有pdf以前的版本没有任何错误,以前的版本是以128位加密的。
PdfReader reader = new PdfReader(src,"passwordtext".getBytes());
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
感谢您的帮助。
第6版包含在PDF 2.0版的“ISO 32000-2”中。由于PDF 2.0尚未成为官方标准,iText不支持它。现在,您可以问自己,您是如何以及为什么已经有了使用该标准的文档的?Adobe已经实现了它,尽管它还没有公开发布(因此要进行更改),这对他们来说是一个错误的决定。标准发布后,iText也将支持它,但您必须等待。在此之前,请使用Adobe Acrobat使用“较低”的加密算法(例如修订版1-5)重新生成该文档。
2021年更新:该标准已于2017年发布,因此第6版可以继续使用。
我在这个网站上用AES-256加密一个虚拟字符串: https://www.devglan.com/online-tools/aes-encryption-decryption 具有以下参数: null 当我尝试用OpenSSL从命令行解密它时: 我得到这个错误:
问题内容: 我有下面的Java代码来加密使用64个字符的密钥的字符串。我的问题是这将是AES-256加密吗? 以下是结合了divanov和laz建议的代码。 问题答案: 是的,它将是64个字符,即32个字节和256位,并且256位的任何序列都可以用作AES-256密钥。 我建议您使用DatatypeConverter.parseHexBinary(或您选择的库中的类似实用程序)将十六进制字符串转换
问题内容: 在Golang中处理原始IP软件包时,遇到了一个问题,我似乎无法找到以下解决方案: 在IPv4的说明书中包含有大于8位小字段。例如,版本或报头长度(每个4位)或标志(3位)。 如何从io.Reader中读取这些值,然后再使用Golang处理它们?到目前为止,我一直在使用binary.Read方法,但是由于Golang中最小的整数类型是int8,因此在这种情况下是不可能的。 问题答案:
问题内容: 我需要实现256位AES加密,但是我在网上找到的所有示例都使用“ KeyGenerator”来生成256位密钥,但是我想使用自己的密码。如何创建自己的密钥?我尝试将其填充到256位,但是随后出现错误消息,提示密钥太长。我确实安装了无限管辖权补丁,所以那不是问题:) 就是 KeyGenerator看起来像这样… 从这里获取的代码 编辑 我实际上是将密码填充到256个字节而不是位,这太长了
1.我有java函数,它加密xml文件并返回加密的字符串。 2.我有c#函数,它可以解密由java函数加密的消息。 Java加密功能运行良好。但问题是C函数, 当我解密时,会得到下面的错误消息 我使用下面的参考搜索解决方案 Java中的AES加密和C#中的解密 C#/Java|AES256加密/解密 C#和Java中的加密/解密 但我仍然面临同样的错误。谁能给我提个建议吗。 我只是改变我的C#加密
问题内容: 1.我有java函数来加密xml文件并返回加密的字符串。 2.我有c#函数可以解密通过java函数加密的消息。 Java加密功能运行良好。但是问题是C#函数, 当我解密时出现以下错误消息 我通过使用下面的参考来搜索解决方案 Java中的AES加密和C#中的解密 C#/ Java | AES256加密/解密 C#和Java中的加密/解密 但我仍然遇到同样的错误。有人可以给我建议吗? 更新