将密钥和IV规范写入外部文件并读取它们?

时间:2018-10-22 07:41:39

标签: java xml encryption secret-key cbc-mode

我有一种使用Cipher CBC模式加密值的方法,然后将其插入到MySQL表中,如下所示:

public void addFruit(String fruit, String color, int pos){
            CryptoHelperClass crypto = new CryptoHelperClass();

            //Crypto Cipher 
            SecretKeyIVGen sk = new SecretKeyIVGen();  
            List<KeyGenerator> kgList = sk.getKeyGenerator();
            List<SecretKey> skList = sk.getSecretKey(kgList);  //how do I save the skList value generated here and write it into an external (XML) file?
            List<IvParameterSpec> ivList = sk.getIvSpec(skList);  //how do I save the ivList value generated here and write it into an external (XML) file? 

            byte[] byteFruit = crypto.encrypt(fruit, skList, ivList);
            String bcryptColor = BCryptHelperClass.bCrypt(color);
            byte[] byteColor = crypto.encrypt(bcryptColor, skList, ivList);         

            fdao.insertFruit(byteFruit, byteColor, pos);
        }

在这种方法中,我想保存skListivList变量,并将它们写到XML之类的外部文件中。这些值只能在此方法内生成。

我的想法是稍后将读取此XML文件并在解密存储在表中的数据时使用这些值。

我如何将它们写入外部文件,然后以后可以读取和遍历该文件?

XML文件应具有以下元素:

<entry 1>
     <secretkey> javax.crypto.spec.SecretKeySpec@fffe8ea9</secretkey>
     <ivspec>javax.crypto.spec.IvParameterSpec@ab4d9e2 </ivspec>
</entry 1>

<entry 2>
     <secretkey>javax.crypto.spec.SecretKeySpec@1794a</secretkey>
     <ivspec>javax.crypto.spec.IvParameterSpec@ab4d9e2 </ivspec>
</entry 2>

0 个答案:

没有答案