У меня есть метод, который шифрует значения с использованием режима 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>