我需要将公钥存储在我的MySQL DB中。我有以下几点:
rsaModulus=rsaPk.getModulus();方法getModulus()返回BigInt。但是,当我使用preparedstatement来插入表中的值时,我找不到合适的方法(例如,类似于toString,toInt)。我需要检索这个公钥,并在稍后进行一些数学计算。这就是为什么,我不认为将其存储为字符串是一个好主意。此外,由于DB中的字段定义为BigInt,因此toLong不起作用。这个问题有什么解决办法吗??
发布于 2012-07-11 05:14:13
像密钥和证书这样的文件通常以位数组的形式存储。这可以通过blob列来完成。
Mysql文档显示了这些java类型和mysql类型之间的关系:http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-conversions.html
如果您能够将您的公钥作为byte[]获取,请像下面这样使用示例代码:
...
InputStream is = PapelServiceTest.class.getResourceAsStream("MY_FILE_HERE");
byte[] pkBytes = IOUtils.toByteArray(is);
String query = "INSERT INTO my_table (my_key_col) VALUES (?)";
PreparedStatement pstat = conn.prepareStatement(query);
pstat.setBytes(1, pkBytes);
pstat.execute();
...发布于 2012-07-11 04:35:53
https://stackoverflow.com/questions/11421377
复制相似问题