在本文中,我们将带你了解如何用.pfx文件签名JavaApplet?在这篇文章中,我们将为您详细介绍如何用.pfx文件签名JavaApplet?的方方面面,并解答javapdf签名常见的疑惑,同时我们
在本文中,我们将带你了解如何用.pfx文件签名Java Applet?在这篇文章中,我们将为您详细介绍如何用.pfx文件签名Java Applet?的方方面面,并解答java pdf签名常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的.NET使用PFX文件签名XML文档、AG 百家家乐官方最新网址《 787977.tv 蝙蝠 14735340 》java 中 applet 是什么意思_Java Applet 与 Java Application 的区别、Controller.java文件中的Javafx 2.0 How-to Application.getParameters()、JAR文件中的Java Applet。
本文目录一览:- 如何用.pfx文件签名Java Applet?(java pdf签名)
- .NET使用PFX文件签名XML文档
- AG 百家家乐官方最新网址《 787977.tv 蝙蝠 14735340 》java 中 applet 是什么意思_Java Applet 与 Java Application 的区别
- Controller.java文件中的Javafx 2.0 How-to Application.getParameters()
- JAR文件中的Java Applet
如何用.pfx文件签名Java Applet?(java pdf签名)
我正在尝试使用本指南
(以及互联网上的其他一些指南)使用我们公司的.pfx证书签署一个jar
applet档案:http :
//www.globalsign.com/support/ordering-
guides/SignJavaCodeAppletsPFX.pdf
一切似乎都很好,但是当我尝试不通过浏览器运行apple时,我看到
“ Publisher”是UNKNOWN(不受信任)。当我转到详细信息时,我可以看到正确的公司
名称和证书供应商(GlobalSign)。为什么它不能正确显示为已知/可信?
对我来说可疑的一件事是命令
jarsigner -verify -verbose -certs Applet.jar的输出:
(...) sm 1936 Wed Apr 13 03:00:50 CEST 2011 org/my/Applet.class X.509, CN=CompanyName, O=CompanyName, L=Tilst, ST=ProperState, C=DK [certificate is valid from 18.02.10 14:58 to 18.02.13 14:58] s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope
因此看起来好像缺少“ k =在密钥库中至少找到一个证书”
(应该是smk,它是sm)。它仅部分签名吗?或者是什么?
GlobalSign给我的.pfx文件是否可能由于某种原因而错误
,不足以签署小程序?对于普通的可执行文件,它工作得很好…
有任何想法吗?;)
编辑
@Jcs
看来您完全正确。我用keytool检查了我的PFX文件,然后得到:
Your keystore contains 1 entryAlias name: company_aliasCreation date: Apr 13, 2011Entry type: PrivateKeyEntryCertificate chain length: 1Certificate[1]:
所以看起来链条不完整。
我不确定是否重要,但也有一些扩展,例如:
#1: ObjectId: (some_numbers_here) Criticality=trueKeyUsage [ DigitalSignature]#2: ObjectId: (some_numbers_here) Criticality=falseAuthorityInfoAccess [ [ accessMethod: (some_numbers_here) accessLocation: URIName: http://secure.globalsign.net/cacert/ObjectSign.crt]](...)
问题是:我的PFX文件是完全错误的,还是我需要在其中添加globalsign根?
答案1
小编典典非常感谢所有人,尤其是Jcs :)
我终于发现.pfx文件只是被不正确地导入。
我要求老板从头开始为我导入它,并包括所有可能的路径/链/证书,现在它可以工作了:)
所以,如果有人遇到类似的问题,我的建议是尝试再次获取/导入证书
-这是证书的问题本身比用签名方法。
.NET使用PFX文件签名XML文档
一个人如果下决心要成为什么样的人,或者下决心要做成什么样的事,那么,意志或者说动机的驱动力会使他心想事成,如愿以偿。
Program.cs代码:
class Program { static void Main(string[] args) { #region 1 - 加载XML文档 var xmlDoc = new XmlDocument(); xmlDoc.Load(XmlFile); #endregion #region 2 - 读取证书文件 var fs = new FileStream(CertificateFile,FileMode.Open); var certBytes = new byte[fs.Length]; fs.Read(certBytes,0,(Int32)fs.Length); fs.Close(); var cert = new X509Certificate2(certBytes); #endregion #region 3 - 签署xml文档 string signedXmlData = GetSignedXml(xmlDoc,cert); #endregion #region 4 - 根据证书验证签名的xml bool isValid = Validate(signedXmlData,CertificateFile); System.Console.WriteLine("Signed data validated: {0}",isValid); #endregion Console.ReadKey(); } //公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)为存储和传输用户或服务器私钥、公钥和证书指定了一个可移植的格式。 public static string CertificateFile { get { return string.Format("{0}\\{1}\\{2}",Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),"Data","certificate.pfx"); } } public static string XmlFile { get { return string.Format("{0}\\{1}\\{2}","sample.xml"); } } public static string GetSignedXml(XmlDocument xmlDocument,X509Certificate2 certificate) { var signedXml = new SignedXml(xmlDocument); signedXml.SigningKey = certificate.PrivateKey; //添加签名引用,uri为空,因此整个文档都被签名。 var reference = new Reference(); reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); reference.AddTransform(new XmlDsigExcC14NTransform()); reference.Uri = ""; signedXml.AddReference(reference); // 添加证书作为密钥信息,因为这样,具有公钥的证书将被添加到签名部分。 var keyInfo = new KeyInfo(); keyInfo.AddClause(new KeyInfoX509Data(certificate)); signedXml.KeyInfo = keyInfo; //生成签名 signedXml.ComputeSignature(); //将签名附加在xml文档的末尾 xmlDocument.DocumentElement.AppendChild(signedXml.GetXml()); //获取包含签名节点的XML return xmlDocument.InnerXml; } public static bool Validate(string signedXmlData,string certPath) { bool validSender; try { var assertion = new XmlDocument { PreserveWhitespace = true }; assertion.LoadXml(signedXmlData); // 使用命名空间管理器来避免最糟糕的xpath var ns = new XmlNamespaceManager(assertion.NaMetable); ns.AddNamespace("ds",SignedXml.XmlDsigNamespaceUrl); // 获取XML的签名节点 XmlNode signNode = assertion.SelectSingleNode("/ImportantData/ds:Signature",ns); // 加载XML签名 var signedXml = new SignedXml(assertion.DocumentElement); signedXml.LoadXml(signNode as XmlElement); //检查密钥和签名匹配 var cert = new X509Certificate2(certPath); if (!signedXml.CheckSignature(cert,true)) { throw new SecurityException("Signature check Failed."); } else { validSender = true; } } catch (Exception ex) { throw ex; } return validSender; } }
Sample.xml
<?xml version="1.0" encoding="utf-8" ?> <ImportantData> <EmployeeId>13232</EmployeeId> <Password>ilikeworld</Password> </ImportantData>
运行结果如图:
AG 百家家乐官方最新网址《 787977.tv 蝙蝠 14735340 》java 中 applet 是什么意思_Java Applet 与 Java Application 的区别
大家好,又见面了,我是你们的朋友全栈君。
在 Java 语言中,能够独立运行的程序称为 Java 应用程序 (Application)。Java 语言还有另外一种程序–Applet 程序。Applet 程序 (也称 Java 小程序) 是运行于各种网页文件中,用于增强网页的人机交互、动画显示、声音播放等功能的程序。
Java Applet 和 Java Application 在结构方面的主要区别表现在:
(1) 运行方式不同。Java Applet 程序不能单独运行,它必须依附于一个用 HTML 语言编写的网页并嵌入其中,通过与 Java 兼容的浏览器来控制执行。Java Application 是完整的程序,可以独立运行,只要有支持 Java 的虚拟机,它就可以独立运行而不需要其他文件的支持。
(2) 运行工具不同。运行 Java Applet 程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。Java Application 程序被编译以后,用普通的 Java 解释器就可以使其边解释边执行,而 Java Applet 必须通过网络浏览器或者 Applet 观察器才能执行。
(3) 程序结构不同。每个 Java Application 程序必定含有一个并且只有一个 main 方法,程序执行时,首先寻找 main 方法,并以此为入口点开始运行。含有 main 方法的那个类,常被称为主类,也就是说,Java Application 程序都含有一个主类。而 Applet 程序则没有含 main 方法的主类,这也正是 Applet 程序不能独立运行的原因。尽管 Applet 没有含 main 方法的主类,但 Applet 一定有一个从 java.applet.Applet 派生的类,它是由 Java 系统提供的。
(4) Java Applet 程序可以直接利用浏览器或 AppletViewer 提供的图形用户界面,而 Java Application 程序则必须另外书写专用代码来营建自己的图形界面。
(5) 受到的限制不同 Java Application 程序可以设计成能进行各种操作的程序,包括读 / 写文件的操作,但是 Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于 Applet 的引入,使 Web 页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的 HTML 语言编写成的 Web 页面真正具有了超文本功能,不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet 使 Web 页面增加了按钮等功能,从而增加了交互性。
Java Applet 和 Java Application 在执行方面的主要区别表现在:Java Application 一般是在本地机上运行,而 Java Applet 一般放在服务器上,它是根据本地机的请求被下载到本地机,然后才在本地机上运行。
Controller.java文件中的Javafx 2.0 How-to Application.getParameters()
考虑以下示例。
如何在控制器中访问应用程序的参数/参数?
谢谢。
注意:我试图仅在一个Class文件中混合App.java和MyController.java,但没有帮助。
App.java(简体):
public class App extends Application {
public static void main(String[] args) {
Application.launch(App.class,args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// output arguments in console
System.out.println(getParameters().getNamed().toString());
Parent root = FXMLLoader.load(getClass().getResource("MyView.fxml"));
final Scene scene = new javafx.scene.Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
}
MyController.java(简体):
public class MyController implements Initializable {
@Override
public void initialize(URL url,ResourceBundle rb) {
// HOW TO getParameters() HERE ?
}
@FXML
private Button myButton;
@FXML
private void my_Action(ActionEvent event) {
// HOW TO getParameters() HERE ?
}
}
MyView.fxml(简体):
<AnchorPane fx:id="root" fx:controller="mainpackage.MyController">
<children>
<Button fx:id="myButton" onAction="#my_Action" text="Start" />
</children>
</AnchorPane>
JAR文件中的Java Applet
我创建了一个Java
applet(.class文件),并用它制作了一个.jar并对该.jar文件进行了数字签名。现在我需要将.jar作为小程序运行在Firefox中。我要在html代码中放入什么以将.jar文件作为applet运行?我尝试了一下,但它不起作用,它尝试获取.class文件,如何使用Internet
Explorer和Firefox中的applet标签将applet加载并运行为.jar文件?我在互联网上搜索,找不到答案。
答案1
小编典典http://java.sun.com/docs/books/tutorial/deployment/jar/run.html
应该管用
<applet code=TicTacToe.class archive="TicTacToe.jar" width=120 height=120></applet>
(该类具有您假设的main(),罐子就是整个东西)
关于如何用.pfx文件签名Java Applet?和java pdf签名的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NET使用PFX文件签名XML文档、AG 百家家乐官方最新网址《 787977.tv 蝙蝠 14735340 》java 中 applet 是什么意思_Java Applet 与 Java Application 的区别、Controller.java文件中的Javafx 2.0 How-to Application.getParameters()、JAR文件中的Java Applet等相关知识的信息别忘了在本站进行查找喔。
本文标签: