SQLCipherには、パスフレーズ(関連するPBKDF2ラウンド数)または生のキーの2通りの方法でデータベースキーを提供することができます。パスフレーズとPBKDF2の反復から生鍵データを取得する方法
パスフレーズ(任意の文字列)とラウンド数を考慮して、生の鍵(64文字の16進数文字列)を取得する方法を見つけようとしています。 PBKDF2キーの派生を自分自身で実行しているのではないかと思いますが、これがどう機能するか、またはPRAGMA KEY
の生の鍵としてフィードできる値を生成するかどうかはあまりよく分かりません。さらに、PBKDF2機能は塩を取るように見えますが、これはわかりません。私がする必要がある場合、私はこれを把握するためにsqlcipherのソースコードを掘り下げることができると確信していますが、私は行方不明でこれを行うための簡単な方法があるかもしれないと思っています。
これを読んだあと、raw鍵はファイルの16バイトにランダムな塩がないので、ハッシュされた鍵をあらかじめ計算して生の鍵のように扱うことはできません。 – Michael
生の鍵SQLCipherを使用する場合、鍵の導出は実行されません。ファイルの先頭にはまだランダムなデータがありますが、使用されていません。達成しようとしていることを説明できますか? –
ユーザー指定のパスフレーズからボールトされた生の鍵の形式に移行しますが、その間に(既存のデータベースが移行される前に)いずれかの方法で動作するソリューションが必要です。与えられたパスフレーズが本当に生の鍵かどうかを検出し、それに応じてプラグマを指定することができます。 – Michael