2010-07-09 163 views
0

我正在做一个使用AES算法的密码加密和解密项目。 我需要在数据库(ms-access)中存储SecretKeySpec类型的密钥,并且必须检索它。 我该怎么做? 我已经在类型oletype对象的数据库中创建了一列。 我使用的查询:将密钥存储在数据库中并检索它

String query="insert into encrypt values(?)"; 

如何设置查询参数?

+0

重复: http://stackoverflow.com/questions/3187166/problem-in-retrieving-a-decrypted-data – 2010-07-09 07:07:51

回答

0

据我所知,Access支持类型OLE对象来存储MS文档和二进制数据,如pictures, sounds, or other binary data。由于“”的限制,它们必须在使用OLE协议的其他程序中创建,可以链接到或嵌入到Microsoft Access表中。必须在窗体或报表中使用绑定的对象框来显示OLE对象。

我想建议使用MS SQL Server或MySQL的(发动机),这样可以并处许多完整性一致性检查有效和高效地。 MySQL提供了一种用BLOB类型存储二进制值的方法。 SQL Server提供了binaryvarbinary为了同样的目的...

0

最好的方法是使用一个PreparedStatement,例如:

PreparedStatement ps = connection.prepareStatement("insert into encrypt values (?)"); 
ps.setBytes(1, rawKeyBytes); 
ps.execute(); 

我建议您不要使用oletype;可能更好地使它成为一个blob。请记住,密钥只是一个字节数组。不要尝试存储SecretKeySpec - 而是存储原始密钥字节。

相关问题