1

MySQLDBに公開鍵を保存する必要があります。私は次のものを持っています:

 rsaModulus=rsaPk.getModulus();

このメソッドgetModulus() はBigIntを返します。しかし、preparedstatementテーブルに値を挿入するためにを使用すると、それを行うための適切な方法が見つかりません(つまり、に似ていますtoStringtoInt。この公開鍵を取得し、後で数学的な計算を行う必要があります。そのため、Stringとして保存するのは良い考えではないと思います。また、toLongDBのフィールドがBigIntとして定義されているため、機能しませんでした。この問題の解決策はありますか?

4

2 に答える 2

0

このスレッドには、BLOBを使用した興味深い回避策があります。

BigIntegerをMysqlに保存する

おそらくあなたはそれを使うことができます。

PS。次回は、最初にSOを検索してください:)

于 2012-07-10T20:35:52.943 に答える
0

キーや証明書などのファイルは、通常、バイト配列として保存されます。これは、blob列を使用して実行できます。

Mysql docは、これらの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-10T21:14:13.417 に答える