我正在使用AES算法进行密码加密和解密的项目。 我需要在数据库中存储SecretKeySpec类型的密钥(ms-access)并且必须检索它。 我怎样才能做到这一点? 我在类型为oletype对象的数据库中创建了一个列。 我正在使用查询:
String query="insert into encrypt values(?)";
如何在查询中设置参数?
答案 0 :(得分:0)
据我所知,Access支持类型 OLE对象来存储MS文档和二进制数据,如pictures, sounds, or other binary data
。使用OLE协议在其他程序中创建“它们的约束”,可以链接到或嵌入在Microsoft Access表中。您必须在表单或报表中使用绑定对象框来显示OLE对象。“
我建议使用MS SQL Server或MySQL(引擎),以便您可以高效且有效地强加许多完整性和一致性检查更多 。 MySQL提供了一种存储BLOB
类型的二进制值的方法。 SQL Server提供binary
和varbinary
用于相同的目的......
答案 1 :(得分:0)
最好的方法是使用PreparedStatement
,例如:
PreparedStatement ps = connection.prepareStatement("insert into encrypt values (?)");
ps.setBytes(1, rawKeyBytes);
ps.execute();
我建议您不要使用oletype
;可能更好地使它成为一个blob。请记住,键只是一个字节数组。不要试图存储SecretKeySpec
- 而是存储原始密钥字节。