iOS SQLite 解密 SQLCipher

2023-11-03 05:32
文章标签 解密 ios sqlite sqlcipher

本文主要是介绍iOS SQLite 解密 SQLCipher,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

iOS SQLite解密之SQLCipher
  官方集成文档:https://www.zetetic.net/sqlcipher/ios-tutorial

  SQLCipher:https://github.com/sqlcipher/sqlcipher

解密数据库
一、编译

  1. 这个步骤可参考文章:(http://www.cnblogs.com/eileenleung/p/5456907.html中Terminal 上安装 SQLCipher部分),作者写的很详细,就不啰嗦了。如果按照文中步骤make成功,下面2-6步骤可忽略,若make始终不成功,并报 openssl/rand.h 找不到错误;可以首先执行如下第6步骤(首先判断你的openssl路径和如下命令路径符合);如果没有安装openssl;老实执行2-6步骤:

    注意:如果在上作者文章中按照1,2步骤完成后,始终还是不能make成功,,可如下执行:

  2. make clean

  3. 安装brew命令:ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

  4. 安装openssl: brew install openssl

  5. 链接:    brew link openssl –force

  6. 关键一步:把第一步的 ./configure –enable-tempstore=yes CFLAGS=”-DSQLITE_HAS_CODEC” LDFLAGS=”-lcrypto” 命令 修改成 ./configure –enable-tempstore=yes CFLAGS=”-DSQLITE_HAS_CODEC” LDFLAGS=”-lcrypto -L/usr/local/opt/openssl/lib” CPPFLAGS=”-I/usr/local/opt/openssl/include” ,执行,成功,然后 make,编译成功;

  其中: “LDFLAGS: -L/usr/local/opt/openssl/lib 和 CPPFLAGS: -I/usr/local/opt/openssl/include” 这两个路径可以使用命令: brew info openssl 找到。

  至此,编译成功,下面可以根据已加密的数据库文件和密码进行解密操作了,参考 二、解密 。

二、解密

1.切换到你的sqlcipher目录下,执行:./sqlcipher 要解密的数据库路径
2. PRAGMA key = ‘你的加密密码’;
3. ATTACH DATABASE ‘要解密的数据库名称(可以和第1步数据库名称不同)’ AS plaintext KEY ”;
4. SELECT sqlcipher_export(‘plaintext’);

  1. DETACH DATABASE plaintext;

  2. .q 退出

切换到你的sqlcipher目录下,就找到你刚才解密的数据库了,名称就是第3步的名称。

这篇关于iOS SQLite 解密 SQLCipher的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/335933

相关文章

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密