如何在 Swift 中使用“FMDB/SQLCipher”进行加密和解密?
Posted
技术标签:
【中文标题】如何在 Swift 中使用“FMDB/SQLCipher”进行加密和解密?【英文标题】:How to encrypt and decrypt using 'FMDB/SQLCipher' in Swift? 【发布时间】:2017-01-30 00:55:55 【问题描述】:我使用 FMDB 在 Swift 中创建了一个 SQLite 数据库。但现在我想加密它。那么任何人都可以帮助我使用“FMDB/SQLCipher”加密和解密 SQLite 数据库的 Swift 版本吗?我找不到很好的教程来理解这一点。
【问题讨论】:
您需要打开明文数据库并将其复制到加密数据库,然后删除明文数据库,如 SQLCipher 文档中所述:discuss.zetetic.net/t/…我不知道 fmdb,所以我'无法为此操作提供任何 API 级别的指导。 你能告诉我,你是如何添加 FMDB 框架的吗?我想我可能会有所帮助。 【参考方案1】:下面是一个示例代码,它在数据库上设置一个键,它是一个FMDatabase
对象。您必须使用setKey()
方法才能访问加密数据库。我还在 FMDB 库上编写了一个包装器,这将使您更轻松地处理加密数据库。
这里是:https://github.com/SagarSDagdu/SDDatabase/ 它还有大量的文档和示例代码。
func executeUpdate(onDatabase database:FMDatabase, withStatement statement:String, values: [Any]?) -> Bool
var success:Bool = false
do
database.logsErrors = self.loggingEnabled
if let key = self.dbPassKey //Use your key here
database.setKey(key)
try database.executeUpdate(statement, values:values)
success = true
catch
print("Error in \(#function) with query: \(statement), error : \(error)")
return success
【讨论】:
以上是关于如何在 Swift 中使用“FMDB/SQLCipher”进行加密和解密?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 kotlin native 中使用 swift 库?
如何在 Swift 中使用 Apple 地图 - 你必须使用 C 还是 Swift 可以?