Tag: 签名

使用PEM编码的加密私钥本地签名消息

我正在尝试使用PEM(X.509)证书(存储在磁盘上的privateKey.pem文件中)来签署通过Java中的套接字发送的消息,但是在找到一个接近的示例时遇到了很多麻烦。 我通常是一个C ++人,他只是踩着这个项目来帮忙,所以我把它们放在代码中有点困难,因为我不熟悉API。 不幸的是,我只限于Java(1.6.0 Update 16)标准的方法,所以虽然我发现了一个使用BouncyCastle的PEMReader的类似例子,但它对这个特定的项目没有多大帮助。 我的privateKey.pem密钥是passphrase protected,格式为: —–BEGIN RSA PRIVATE KEY—– Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,63A862F284B1280B […] tsjQI4H8lhOBuk+NelHu7h2+uqbBQzwkPoA8IqbPXUz+B/MAGhoTGl4AKPjfm9gu OqEorRU2vGiSaUPgDaRhdPKK0stxMxbByUi8xQ2156d/Ipk2IPLSEZDXONrB/4O5 […] —–END RSA PRIVATE KEY—– 它们的密钥是使用OpenSSL生成的: openssl.exe genrsa -out private_key.pem 4096 我无法在运行之前将此密钥转换为DER或其他格式,所需的任何转换都需要在代码内部完成,因为密钥需要易于更换且格式仍为PEM。 我听过各种各样的事情,我并不完全确定,并且希望这里的集体思想可以帮助把各个部分拉到一起。 我听说它说PEM证书需要Base64解码才能将其转换为可以使用的DER证书。 我有一个名为MiGBase64的Base64解码工具,但我不完全确定如何/何时需要解码。 我已经迷失在Java API文档中,试图追踪存在的15种不同类型的Keys,KeyStores,KeyGenerators,Certificates等,但我对它们中的任何一种都不熟悉,无法正确识别我需要的使用,以及如何一起使用它们。 基本算法看起来很简单,这就是为什么我无法编写同样简单的实现特别令人沮丧的原因: 1)从文件中读取privateKey.pem 2)使用密码短语将私钥加载到XXX类中以解密密钥 3)使用带有Signature类的密钥对象对消息进行签名 非常感谢帮助,特别是示例代码。 我一直在努力寻找这个问题的有用示例,因为大多数“关闭”示例都是使用BouncyCastle生成新密钥,或者只是使用不适用于此处的不同forms的密钥/类。 这似乎是一个非常简单的问题,但它让我发疯,任何非常简单的答案?

如何以编程方式validation使用jarsigner签名的jar

我想使用jarsigner签署一个jar,然后使用一个Java应用程序validation它,该应用程序没有签名的jar作为其类路径的一部分(即只使用jar的文件系统位置) 现在我的问题是从jar中获取签名文件,有一个简单的方法吗? 我玩过Inflater和Jar InputStreams没有运气。 或者这是可以更好地完成的事情吗? 谢谢