AES暗号のパスワードキーがあり、それをOracleデータベースの列に保存する必要があります。パスワードはJavaでバイト配列として生成されるため、Oracleが理解できるデータ型に変換するための最良の方法を理解する必要があります。その逆も同様です。
user4903
質問する
25184 次
3 に答える
9
Javaのバイト配列の要素数が4000未満であると仮定すると、RAW
Oracleの列に格納できます。これは、データがバイナリであることを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
理解を定義します。
パスワードキーをデータベースに保存している場合は、それを再考することをお勧めします。ただし、いくつかの簡単なオプションがあります。
- バイト配列をUUエンコードASCII文字列に変換し、それをVARCHARフィールドに格納します。
- バイト配列をCLOBまたはBLOBに格納します。
于 2012-04-12T22:56:30.510 に答える