如何在C#中的PKCS12密钥库(.pks文件或.p12)中存储AES 256密钥

时间:2019-10-30 04:18:35

标签: aes .net pkcs#12

我需要使用C#将AES 256位密钥存储在密钥库中。我尝试使用Org.BouncyCastle.Pkcs.Pkcs12Store,但无法存储AES密钥。 我可以使用以下代码在JAVA中完成此操作,但在C#中无法做到这一点。

try{
        KeyStore keyStore = KeyStore.getInstance("PKCS12");
        keyStore.load(null, null);

        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(256);
        Key key = keyGen.generateKey();
        for(byte b: key.getEncoded()) {
            System.out.print(b);
        }
        System.out.println("");
        keyStore.setKeyEntry("secret", key, "password".toCharArray(), null);

        keyStore.store(new FileOutputStream("output.p12"), "password".toCharArray());

        try{
            keyStore = KeyStore.getInstance("PKCS12");
            keyStore.load(new FileInputStream("output.p12"), "password".toCharArray());

            Key pvtKey = keyStore.getKey("secret", "password".toCharArray());
            //System.out.println(pvtKey.getEncoded().toString());
            for(byte b: pvtKey.getEncoded()) {
                System.out.print(b);
            }
            System.out.println("");
        } catch (Exception ex){
            ex.printStackTrace();
        }
    } catch (Exception ex){
        ex.printStackTrace();
    }

请帮帮我。

0 个答案:

没有答案