Ich arbeite an einem Projekt, das digitale Signatur verwendet, physisch oder nicht (Smartcard oder Datei). Ich muss einhundert Stück XML-Code pro Datei signieren, mittlerweile gibt es 2500 Dateien, also 2500 * 100 = 250.000 mal. Bei Verwendung von a1-Zertifikat (Datei) dauert es 2 Sekunden pro Datei. Wenn ich eine Smartcard ausprobiere, dauert es 30 Sekunden pro Datei, was bedeutet, dass alle Dateien fast 21 Stunden benötigen, was zu lang ist. Ich würde gerne wissen, ob jemand jemals damit umgegangen ist, denn es ist Java-Code, ein Schnipsel folgt.Unterschreiben xml mit Smartcard dauert zu lange
Element elemento = (Element) document.getElementsByTagName(elementName).item(0);
elemento.setIdAttribute("id", true);
String id = elemento.getAttribute("id");
Init.init();
ElementProxy.setDefaultPrefix(Constants.SignatureSpecNS, "");
XMLSignature sig = new XMLSignature(document, "", XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256);
elemento.getParentNode().appendChild(sig.getElement());
{
Transforms transforms = new Transforms(document);
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
transforms.addTransform(Transforms.TRANSFORM_C14N_OMIT_COMMENTS);
sig.addDocument("#" + id, transforms, "http://www.w3.org/2001/04/xmlenc#sha256");
}
XmlUtils.trimWhitespace(document);
XmlUtils.scapeChars(document);
{
X509Certificate cert = certificadoBean.getCertificate();
sig.addKeyInfo(cert);
sig.sign(certificadoBean.getPrivateKey());
}
Vielen Dank Eugene, ich habe versucht, parallele Ausführung, erhöht es 2 Sekunden pro Ausführung. Hast du keine Ahnung, dass ich versuchen könnte, wenigstens noch ein paar Sekunden zu verbessern? –
@LanaStf Ich würde versuchen, sicherzustellen, dass es Hardware ist, die Langsamkeit hinzufügt. Wenn Sie dieselbe Hardware in einem anderen Signaturvorgang als Java-Signaturcode verwenden können, wäre es großartig, die Hardware zu testen. Vielleicht bietet der Hardware-Anbieter eine Anwendung an oder es gibt eine andere nicht-verwaltete (nicht-Java) Möglichkeit, Ihr Gerät zu testen. –
Ist das nicht die Tatsache, dass a1 16x schneller laufen? –