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
}
我正在尝试使用 1)FMDB Pod 2)SQLCipher pod 使用Rubymotion iOS项目。
我正在尝试使用SQLCipher加密数据库,但Rubymotion无法识别SQLCipher提供的方法。
我找到了下面提到的一段代码,据报道,这些代码在Objective C和xcode中运行。
有人可以将此转换为Rubymotion吗?
答案 0 :(得分: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
中查看我的回答