【问题标题】:KeyStore.builder - type parameter for .crt filesKeyStore.builder - .crt 文件的类型参数
【发布时间】:2016-11-23 10:50:35
【问题描述】:

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

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

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

谢谢,干杯

【问题讨论】:

  • 您要验证签名吗?还是签字?
  • @MuhammadHamed 我想用那个 .crt 文件签署一份文件,抱歉这个问题,这是我第一次处理签名或密码学
  • 据我所知,您可以使用 .pfx 或 .p12 附带的 pfx 或 PKCS#12 证书存储进行签名。签名过程需要私钥您是否有与此证书相关的密钥对。
  • @MuhammadHamed 感谢您的支持,我有 .crt 文件和 .pem 文件

标签: java encryption digital-signature digital-certificate


【解决方案1】:

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

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

那么你就可以使用这个keystore来签名了,下面是如何加载新的create 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

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多