5

AES暗号のパスワードキーがあり、それをOracleデータベースの列に保存する必要があります。パスワードはJavaでバイト配列として生成されるため、Oracleが理解できるデータ型に変換するための最良の方法を理解する必要があります。その逆も同様です。

4

3 に答える 3

9

Javaのバイト配列の要素数が4000未満であると仮定すると、RAWOracleの列に格納できます。これは、データがバイナリであることをOracleに通知するため、文字セット変換を試行することはありません。そして、それは最小のオーバーヘッドです(ストレージとデータ操作の複雑さの両方の観点から)。

バイト配列に4000を超える要素が含まれる可能性がある場合は、それをBLOB列に格納できます。

于 2012-04-12T22:58:37.177 に答える
8

BLOB列とPreparedStatementを使用します。

CREATE TABLE pwd_table (id integer primary key, pwd blob);

次に、Javaコードで:

byte[] data = ... // obtain the byte array
PreparedStatement pstmt = connection.prepareStatement(
   "insert into pwd_table (id, pwd) values (?, ?)");
pstmt.setInt(1, 42);
pstmt.setBytes(2, data);
pstmt.executeUpdate();
connection.commit();
于 2012-04-12T22:59:32.863 に答える
1

理解を定義します。

パスワードキーをデータベースに保存している場合は、それを再考することをお勧めします。ただし、いくつかの簡単なオプションがあります。

  1. バイト配列をUUエンコードASCII文字列に変換し、それをVARCHARフィールドに格納します。
  2. バイト配列をCLOBまたはBLOBに格納します。
于 2012-04-12T22:56:30.510 に答える