我有一种使用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);
}
在这种方法中,我想保存skList
和ivList
变量,并将它们写到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>