java - KeyStore.builder - .crt 文件的类型参数

标签 java encryption digital-signature digital-certificate

我正在编写可为给定文件应用数字签名的代码。我有 .crt 文件,我需要使用该文件构建 KeyStore 实例。我想使用的方法如下:

 Builder newInstance(String **type**, Provider provider,
                File file, ProtectionParameter protection) 

但是我不确定应该指定什么'type'如果我使用 .crt 文件, 我可能会不明白一些东西,因为这是我第一次处理数字签名,请不要在这种情况下评判我:-)

谢谢,干杯

最佳答案

您可以首先使用私钥(.pem)和证书(.crt)构建JKS(java keystore 文件并使用它)

检查这个答案Importing the private-key/public-certificate pair in the Java KeyStore

然后就可以使用这个keystore进行签名了,这里介绍如何加载新创建的java keystore文件

KeyStore keystore  = KeyStore.getInstance(TYPE_OF_KEYSTORE);
keystore.load(new FileInputStream(PATH_TO_KEYSTORE), PASSWORD);

这是一个数字签名和验证的示例

                           PrivateKey oPrivateKey = (PrivateKey) keystore.getKey(sAlias,null);


                           Provider p = keystore.getProvider();
                           // data to signed
                           byte[] data ="this is the just for test".getBytes();
                           // Signing the data
                           Signature sig = Signature.getInstance("SHA1withRSA");
                           sig.initSign(oPrivateKey);

                           sig.update(data);
                           byte[] signature = sig.sign(); // the digital signature

                           Signature verifier = Signature.getInstance("SHA1withRSA", p);
                           verifier.initVerify(oPublicCertificate);
                           verifier.update(data);
                           System.out.println("the verification result "+verifier.verify(signature));

http://muhammadhamed.blogspot.com/2010/04/accessing-ms-certificate-stores-in-java.html

希望这能有所帮助!

关于java - KeyStore.builder - .crt 文件的类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38477221/

相关文章:

java - java 'class' 文字如何为同一类返回 Class 对象的不同实例?

javascript - SubtleCrypto API 是否支持同一种算法加密和签名?

c++ - SEAL:平方运算后解密不正确,即使密文的噪声预算大于零

python - 如何使用区 block 链对文档进行数字签名?

java - 使用 Play Framework 和第三方 API 流式传输大文件

java.util.InputMismatchException 通过读取 double

java - 通过方面执行命名约定

java - java加解密密码用什么API和算法

digital-signature - 如何在Java Card 2.2.1上实现SHA256?

security - 可以在保持签名完整性的同时篡改签名的可执行文件吗?