Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中使用数字签名对文档进行电子签名_Java_Security_Encryption_Digital Signature_Digital Certificate - Fatal编程技术网

如何在java中使用数字签名对文档进行电子签名

如何在java中使用数字签名对文档进行电子签名,java,security,encryption,digital-signature,digital-certificate,Java,Security,Encryption,Digital Signature,Digital Certificate,我是否可以使用数字签名对所有文件进行签名,或者是否存在无法签名的文件类型 我可以获取证书的公钥,但如何使用该公钥对.iso或.zip文件进行签名?答案取决于您希望登录的格式。PKCS#7/CMS/CAdES签名是一种二进制格式,允许您对任何数据进行签名,并生成包装签名和分离签名。XMLDSIG/XAdES(XML签名)也可以用于相同的目的。还存在特定于格式的签名机制(例如,用于签署办公室文件、PDF文件等) 要进行签名,您必须拥有具有相应私钥的证书。它是启用签名的私钥 在Java中,您可以使用或

我是否可以使用数字签名对所有文件进行签名,或者是否存在无法签名的文件类型


我可以获取证书的公钥,但如何使用该公钥对.iso或.zip文件进行签名?

答案取决于您希望登录的格式。PKCS#7/CMS/CAdES签名是一种二进制格式,允许您对任何数据进行签名,并生成包装签名和分离签名。XMLDSIG/XAdES(XML签名)也可以用于相同的目的。还存在特定于格式的签名机制(例如,用于签署办公室文件、PDF文件等)

要进行签名,您必须拥有具有相应私钥的证书。它是启用签名的私钥


在Java中,您可以使用或我们的(Java版)进行签名。BouncyCastle支持PKCS7/CMS签名,我们的SecureBackbox支持我上面提到的所有签名格式和机制

Eugene没有提到Java RE开箱即用支持XML dig sig,尽管使用CMS(RSA实验室根据PKCS#7规范编写的RCF)比使用XML dig sig更好。请注意,为签名容器编写验证代码是很棘手的,因为示例通常不会检查足够的参数。@现在很少使用不带XAdES的owlstead XMLDSig(因为XMLDSig没有时间戳,这对于长期签名和不可否认性至关重要)。这根本不是事实。也许新协议应该使用XAdES(当然是用于合法接受的文档),但它肯定不是WS-Security的一部分,我打赌这是最大的用例。在我看来,如果需要XAdES,这取决于用例。我想说的是,对于签名的配置文件,XAdES也太过了。@owlstead你可以想说多少就说多少,我只是告诉人们的实际需求。不,WS-Security一点也不流行。XAdES被全球各国政府广泛采用,用于文件的数字签名。XMLDSig还不够。好吧,我不太相信,但我相信你的话。但我敢打赌,愿意在这些事情上花钱的人会是政府机构之类的。我不太确定其他人,他们可能会使用免费/开源解决方案。无论如何,我不是XML digsig的大支持者;陷阱太多了。