-1
SQLCIPHER sqlite encrypted iphone ios converting un-encrypted database to encrypted database
[fmdb open];
       NSString *sel = @"SELECT count(*) FROM sqlite_master";            
       FMResultSet *fmr = [self executeQuery : fmdb : sel];

        if ( [fmr next] ) // unencrypted
        {
            NSLog(@"Encrypting");
            fmdb.key = @"";
            [fmdb rekey : @"somekey"];
        }

- (BOOL)rekey:(NSString*)key {
    #ifdef SQLITE_HAS_CODEC
    if (!key) {
        return NO;
    }

    int rc = sqlite3_rekey(db, [key UTF8String], (int)strlen([key UTF8String]));

    if (rc != SQLITE_OK) {
        NSLog(@"error on rekey: %d", rc);
        NSLog(@"%@", [self lastErrorMessage]);
    }

    return (rc == SQLITE_OK);
    #else
        return NO;
    #endif
   }

Rubymotion iOS プロジェクトで 1)FMDB ポッド 2)SQLCipher ポッドを使用しようとしています。

データベースを SQLCipher で暗号化しようとしていますが、SQLCipher が提供するメソッドを Rubymotion が認識しません。

Objective C および xcode で実行されていると報告されている以下のコードを見つけました。

誰かこれを Rubymotion に変換してくれませんか?

4

1 に答える 1

0

これを RubyMotion に変換する必要はないと思います。RubyMotion からこの FMDB コードを次のように呼び出すことができます。

class Database
  def self.connection
    unless @connection
      @connection = FMDatabase.databaseWithPath(db_path)
      @connection.traceExecution = true if $debug
      @connection.open
      @connection.setKey 'MySecretKey'
    end
  end
end 

Using FMDB + SQLCipher with Rubymotion?で私の回答を参照してください。

于 2013-01-22T19:26:36.197 に答える