Java 加密和数字签名能否只生成一个文件?
我正在尝试使用AES对Java中的文件进行加密,然后对其进行数字签名并将其存储在数据库中,这样我就可以验证签名,然后在获取该文件时对其进行解密。我已经阅读了Oracle的数字签名教程,但他们最终创建了3个文件,即:数据、签名和公钥。我正在寻找一个解决方案,我只有一个文件。有没有这样的解决办法?我对密码学还不熟悉,所以无法收集太多关于它的信息 是:您可以简单地将生成的文件连接成一个文件(使用分隔符以便可以再次拆分它们)。 或者,您可以将它们全部放在一个zip文件中,并在处理之前将其解压缩Java 加密和数字签名能否只生成一个文件?,java,cryptography,public-key-encryption,Java,Cryptography,Public Key Encryption,我正在尝试使用AES对Java中的文件进行加密,然后对其进行数字签名并将其存储在数据库中,这样我就可以验证签名,然后在获取该文件时对其进行解密。我已经阅读了Oracle的数字签名教程,但他们最终创建了3个文件,即:数据、签名和公钥。我正在寻找一个解决方案,我只有一个文件。有没有这样的解决办法?我对密码学还不熟悉,所以无法收集太多关于它的信息 是:您可以简单地将生成的文件连接成一个文件(使用分隔符以便可以再次拆分它们)。 或者,您可以将它们全部放在一个zip文件中,并在处理之前将其解压缩 oops
oops遗漏了数据库部分:在那里,您可以将信息存储为ascii编码的varchar,或者直接将生成的文件读入BLOB中,这当然是可能的。如果您只是连接结果(可能由一个长度指示符处理以使其保持可见),那么您就已经合成了这样一个blob,它可以存储在一个文件中 那当然不是一个很好描述的结构。在密码学中,已经定义了这样的结构。除了为RNCrypt等库定义的许多结构之外,还有两种众所周知的容器格式:CMS和PGP。CMS或加密消息语法最初是为SMIME描述的,并由RSA的PKCS#7标准发展而来。OpenPGP由PGP和GPG等应用程序使用
对于Java,PGP和CMS功能都由Bouncy Castle库提供。这取决于您的情况,但只有在以下所有情况均为真时,您才需要公钥签名。您想: