java - 如何测试 byte[] 是否为 SHA512withRSA 签名?

标签 java android cryptography digital-signature sha512

我正在像这样在 Android 上创建 RSA 签名:

Signature signature = Signature.getInstance("SHA512withRSA");

    // With what private key?
    signature.initSign(privateKey);

    // What document to Sign?
    signature.update(BYdocument);

    // Give me the signed document
    byte[] BYsignedDocument = signature.sign();

文档和签名打包在不同的文件中。用户必须手动输入签名。这就是为什么我试图阻止他们输入不是签名的东西。

如何检查签名 BYsignedDocument 是否实际上是不需要公钥或文档的签名?

最佳答案

无法可靠地检测 RSA 签名。如果您有许多 RSA 签名,那么由于使用模数执行计算,您可能会在第一位中看到一些偏差。从这个意义上说,您可以检查某些字节数组是否不是签名,但反之则不然。

有关详细信息,请参阅 this Q/A on cryptography , 特别是 the answer of Poncho

关于java - 如何测试 byte[] 是否为 SHA512withRSA 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703092/

相关文章:

java - 使用 Vue-CLI Webview 无法渲染虚拟 DOM 并在 SPA 中显示空白

Android 开发人员,无法找到原始资源

node.js - bcrypt 与 Node 一起使用的替代方案是什么?

.net - 如何在 .Net 中使用 PKCS #1 v1.5 编码数据

java - 将参数从 .txt 文件传递​​到 web.xml

java - 是否可以在 Azure 中部署具有文件上传功能的 Web 应用程序而不使用文件/Blob 存储服务?文件将保存在哪里

android - 如何将触摸事件从 subview 传递给父 View ?

android - 一个 Activity 两个不同的 Layouts 有自己的主题?

java - 是否有一种实用的方法来确定正在使用哪些 JCE 加密提供程序?

java - 在Java中如何将 "block of memory"与 "objects"联系起来?