gpt4 book ai didi

java - 如何编写包含签名的 .RSA 文件(使用 Java)

转载 作者:行者123 更新时间:2023-11-29 05:55:38 76 4
gpt4 key购买 nike

我的任务:

我有一个编写文本文件的 Java 应用程序。应用程序应使用 RSA/SHA1 对这些文件进行签名,以保证它们在传输期间或传输后不被更改。

我的第一个想法是在文本文件末尾附加一个“RSA 签名 block ”。但是我没有找到关于必须如何格式化此 block 才能使用标准工具(OpenSSL?)验证文件的信息

在网上搜索了几个小时后,我的印象是编写一个附加了 .rsa 扩展名 的文件。 (假设我们有一个 Order123.txt 我们生成一个文件“Order123.txt.rsa”)但是我没有找到关于这些文件格式的信息。

我唯一找到的是几个链接,其中包含 .rsa 文件并且可以使用 openssl 打开它们,例如: http://file.downloadatoz.com/rsa-file-extension.html

此外 http://download.java.net/jdk8/docs/technotes/guides/jar/jar.html谈论“META-INF/*.RSA”文件:

A digital signature is a signed version of the .SF signature file. These are binary files not intended to be interpreted by humans.

Digital signature files have the same filenames as the .SF files but different extensions. The extension varies depending on the type of digital signature.

.RSA (PKCS7 signature, SHA-256 + RSA)

所以好像是二进制格式...

有人可以解释RSA 文件的格式吗?也许如何最好地用 Java 编写这种格式?(假设公钥/私钥在keystore中)

最佳答案

这些文件是 PKCS#7 格式的签名文件。非常常见,几乎所有 S/Mime 工具链都可以创建这些。参见示例

http://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/tooldocs/win32/javakey.html

请注意,这可用于任意文件。

充气城堡 http://i-proving.com/2007/09/21/pkcs7-signatures-using-bouncy-castle/ , Java implementation of C# SignedCmshttp://www.jensign.com/JavaScience/javacrypto/index.html是一些例子。

一个不需要额外杂物的更有限的版本:https://security.stackexchange.com/questions/13910/pkcs7-encoding-in-java-without-external-libs-like-bouncycastle-etc可能有用。

数据。

关于java - 如何编写包含签名的 .RSA 文件(使用 Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12250541/

76 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com