如何使用AES_DECRYPT更新jtable

时间:2013-04-24 16:41:03

标签: java swing jtable aes defaulttablemodel

我想更新JTable而不AES_ENCRYPT可以更新和查看数据,但由于每次尝试调用此方法时数据都会被加密,因此数据仍然是加密的。我该如何使用解决这个问题?

private void Update_Table(){



     try{
         String sql  = "SELECT ID, AES_DECRYPT(FirstName,  'uk112') "
           + "AS FirstName, AES_DECRYPT( MiddleName,  'uk112') "
           + "AS MiddleName, AES_DECRYPT(LastName,  'uk112') "
           + "AS LastName, DOB, AES_DECRYPT(Gander,  'uk112')"
           + "AS Gander, AES_DECRYPT(Address,  'uk112')"
           + "AS Address, AES_DECRYPT(City,  'uk112' ) "
           + "AS City, AES_DECRYPT(PostCode,  'uk112')"
           + "AS PostCode FROM Customer";
   pst = conn.prepareStatement(sql);
   rs =pst.executeQuery(sql);
   CTable.setModel(DbUtils.resultSetToTableModel(rs));
   pst.close();
   rs.close();
  }
  catch(Exception e){
 JOptionPane.showMessageDialog(null, e);
  }   
  }

每当我尝试调用Update_Table方法来更新JTable这种情况发生时

enter image description here

1 个答案:

答案 0 :(得分:1)

可能 仍然是加密的。这是default renderer的预期输出。如here所示,结果由toString()使用byte数组调用生成。在custom renderer中,您可以使用合适的构造函数将数组转换为String,但您需要指定数据库使用的相同编码。