我想在使用Java Applet的基於Web的應用程序中籤署一些數據(POST表單)。用戶的x509證書將位於加密/智能卡中。簽名需要以附件pkcs#7格式。在Java Applet中實現數字簽名
我使用本教程/代碼爲出發點構建小程序 - http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm
對我來說,最大的問題在這裏似乎是小程序要求用戶爲PKCS的位置#11執行的事實圖書館。對我來說這是一個很大的禁忌,因爲我的典型用戶不會知道他的pkcs#11庫的位置。
從Oracle的Java文檔 - http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html看來,Java沒有自帶的實現。
有沒有辦法執行此簽名而不詢問用戶這個位置。我很滿意這個解決方案只適用於Windows上的IE和Firefox。
隨着我使用了幾個智能卡/加密鎖,我注意到,當我插入它時,我可以在IE瀏覽器的證書中看到證書。這可能意味着當您插入卡時,密碼令牌會註冊其包含在操作系統中的所有證書,並在刪除卡時將其註銷。所以它可能必須暴露一些界面到OS /瀏覽器時 - 它可以不用於簽名嗎?
'在這種情況下,您可以使用與Windows CryptoAPI一起使用的Java類。「您能否詳細說明 - 這些類是哪些類? – user93353
@ user93353請搜索「sunMSCAPI」 - 這就是您需要的。我不知道Java內幕足以向你提供實現的細節。 –
順便說一句,也許你可以找到上面提到的插件有用,而不是花時間在你自己的。你可以在https://www.eldos.com/sbb/desc-dc.php上查看它 –