2015-02-24 2 views
0

Я использую алгоритм blowfish для шифрования изображений и дешифрования изображений. Мои программы работают без проблем, но я пытаюсь сделать небольшую модификацию. В настоящее время секретный ключ, который сгенерирован, временно сохраняется в переменной секретного ключа, но я хочу сохранить его на постоянной основе в базе данных derby, чтобы я мог использовать его в будущем.Сохранение секретного ключа в дерби datase

Мои вопросы Какой тип данных столбца должен быть в дерби, чтобы сохранить секретный ключ? (То есть: - большое число, VARCHAR и т.д.) Могу ли я сразу сохранить его в базе данных?

спасибо.

Ниже приведен код, в котором я генерирую секретный ключ.

public FunctionClass() { 
     try { 
      keyGenerator = KeyGenerator.getInstance("Blowfish"); 
      secretKey = keyGenerator.generateKey(); 

      cipher = Cipher.getInstance("Blowfish"); 
     } catch (NoSuchPaddingException ex) { 
      System.out.println(ex); 
     } catch (NoSuchAlgorithmException ex) { 
      System.out.println(ex); 
     } 
} 

ответ

1

Вы можете кодировать секретный ключ в строку и сохранить строку, используя соответствующий тип данных, как Varchar

String encodedKey = Base64.getEncoder().encodeToString(secretKey.getEncoded()); 

ключ может быть восстановлен следующим образом:

// decode the base64 encoded string 
byte[] decodedKey = Base64.getDecoder().decode(encodedKey); 
// rebuild key using SecretKeySpec 
SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, keyGenerator.getAlgorithm()); 
Смежные вопросы