首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FreeBuf

    SQLCipher之攻与防

    0×00 SQLCipher 在移动端,不管是iOS还是Android,开发人员用的最多的本地数据库非SQlite莫属了。 码农们穷啊,于是大家寻找免费的解决方案,最终SQLCipher成了比较理想的选择,因为它免费、开源,而其它家的SQLiteEncrypt、SQLiteCrypt等还是要收费。 SQLCipher也有收费版本,但收费版本只是在集成、依赖等易用性方面有优势,功能和免费差不多,因此免费版的SQLCipher成了Coder们的选择对象。 下面我们就来分析一下SQLCipher的密钥和加密过程。 不过这貌似超出了SQLCipher攻防的地盘了,是程序本地保护的大范畴,有机会再研究。

    8.6K60发布于 2018-02-08
  • 来自专栏xiaoxi666的专栏

    Win10编译SqlCipher步骤

    /lib目录下) 编译SqlCipher 将上一步生成的两个库文件复制到SqlCipher主目录下 管理员权限运行C:\mingw\msys\1.0\msys.bat批处理文件,进入msys shell /crypto.c> /*** SQLCIPHER ADDITION ***/ #include <sqlcipher/crypto_cc.c> /*** SQLCIPHER ADDITION ***/ #include <sqlcipher/crypto_impl.c> /*** SQLCIPHER ADDITION ***/ #include <sqlcipher/crypto_openssl.c > /*** SQLCIPHER ADDITION ***/ #include <sqlcipher/pager.c> /*** SQLCIPHER ADDITION ***/ 运行以下命令进行配置 /sqlcipher-master/libcrypto.dll -L/d/MySoftware/sqlcipher/sqlcipher-master/ -static-libgcc" LDFLAGS="

    4.6K30发布于 2018-10-29
  • 来自专栏全栈程序员必看

    sqlcipher加密原理_sqlserver数据库加密

    使用 sqlcipher.exe 可以在输入密码后,查看加密数据库的内容。 但是要编码查询数据库的内容,还要另寻方法。 创建加密数据库 $ sqlcipher encrypted.db SQLCipher version 3.8.4.3 2014-04-03 16:53:12 Enter “.help” for instructions 打开加密数据库 $ sqlcipher encrypted.db SQLCipher version 3.8.4.3 2014-04-03 16:53:12 Enter “.help” for instructions 加密已有的数据库 $ sqlcipher banklist.sqlite3 SQLCipher version 3.8.4.3 2014-04-03 16:53:12 Enter “.help” for /sqlcipher/sqlcipher-api/#key PRAGMA key The process of creating a new, encrypted database is called

    3.4K10编辑于 2022-09-20
  • 来自专栏Android开发经验分享

    Android 数据库加密 android-database-sqlcipher 开源版本编译过程

    转载请以链接形式标明出处: 本文出自:103style的博客 build android-database-sqlcipher 介绍 android-database-sqlcipher 用于 sqlcipher开发维护者官网:https://www.zetetic.net/sqlcipher/ github开源项目地址:android-database-sqlcipher 以下是笔者基于 开源版本 4.1.3 版本 编译之后生成文件的项目地址: android-database-sqlcipher 或者直接点击下载 4.1.3版本对应的aar包。 下载链接 使用方法 官方介绍:https://www.zetetic.net/sqlcipher/sqlcipher-for-android/ 添加 aar 到 工程 libs 目录下,然后添加以下 android : java.lang.NoSuchFieldError 这是因为没有添加以下混淆配置导致的 -keep class net.sqlcipher.** { *; } -keep class net.sqlcipher.database

    1.3K20编辑于 2022-12-19
  • 来自专栏郭霖

    Android数据库安全解决方案,使用SQLCipher进行加解密

    那么今天,就让我们一起研究一下如何借助SQLCipher来解决这个安全性问题。 SQLCipher支持很多种不同的平台,这里我们要学习的自然是Android中SQLCipher的用法了。 下面我们就开始吧,首先要把Android项目所依赖的SQLCipher工具包下载下来,下载地址是: https://s3.amazonaws.com/sqlcipher/SQLCipher+for+Android 这里在调用getWritableDatabase()方法的时候传入了一个字符串参数,它就是SQLCipher所依赖的key,在对数据库进行加解密的时候SQLCipher都将使用这里指定的key。 没错,SQLCipher对Android SDK中所有与数据库相关的API都制作了一份镜像,使得开发者可以像操作普遍的数据库文件一样来操作SQLCipher,而所有的数据加解密操作,SQLCipher都在背后帮我们处理好了

    3K90发布于 2018-01-05
  • 来自专栏慎独

    LLDB实战之导出Mac微信备份聊天记录的SQLite密码(SQLCipher加密)

    也可以执行函数并且获得返回值 bt: 打印当前调用栈 thread step over/in/out: 单步跳过/进入/跳出 register: 寄存器操作 next/ni/n/step/si: 同上 参考链接 SQLCipher 查看WCDB所用的SQLite的加密方式,直接在WCDB的README里写了: Encryption Support: WCDB supports database encryption via SQLCipher 于是查看SQLCipher的API,看到用的是sqlite3_key()和sqlite3_key_v2()这2个函数,在源码里搜索,找到调用,一共有两处,在WCTDatabase+Database.mm 用sqlitebrowser打开这个db文件,发现是SQLCipher加密,要输入密码。

    7.1K31发布于 2019-12-30
  • 来自专栏信数据得永生

    安卓应用安全指南 4.5.3 使用 SQLite 高级话题

    4.5.3.6 [参考] 加密 SQLite 数据库(Android SQLCipherSQLCipher是为数据库提供透明 256 位 AES 加密的 SQLite 扩展。 在移动世界中,SQLCipher广泛用于诺基亚/ QT,苹果的 iOS。 Android 项目的SQLCipher旨在支持 Android 环境中的 SQLite 数据库的标准集成加密。 参考:https://guardianproject.info/code/sqlcipher/。 如何使用: 应用开发者可以通过以下三个步骤使用SQLCipher。 在应用的lib目录中找到sqlcipher.jar,libdatabase_sqlcipher.so,libsqlcipher_android.so和libstlport_shared.so。 sqlcipher.jar是主要的,其它的由sqlcipher.jar引用。 总共大约 5.12MB。但是,当icudt46l.zip解压时,总共大约 7MB。

    1.1K20编辑于 2022-12-01
  • 来自专栏微信终端开发团队的专栏

    微信移动端数据库组件 WCDB 系列:Android 特性篇(四)

    加密接口 WCDB 使用了 SQLCipher 的 C 层库,但没有直接使用 SQLCipher Android 的封装层。 SQLCipher Android 封装层中很多设置需要手写 PRAGMA 语句实现,比如设置 KDF 迭代次数(兼容老版本 SQLCipher DB)、设置 Page Size 等操作。 开发者往往必须仔细查阅 SQLCipher 的文档来了解这些细节。 数据迁移 SQLCipher 提供了 sqlcipher_export SQL 函数用于导出数据到挂载的另一个 DB,可以用于数据迁移。 为了方便使用,WCDB 就做了扩展,将 sqlcipher_export 扩展为可以接受第二个参数表示从哪里导出, 从而实现了导入。

    5.4K00发布于 2017-07-25
  • 来自专栏全栈程序员必看

    Android数据库加密

    目前流行的是一款开源的SQLite加密工具 SQLCipher ,微信也在使用。 SQLCipher是完全开源的,其代码托管在github上。 下面就是具体介绍SQLCipher的使用方法。 SQLCipher使用 SQLCipher是完全开源的软件,提供256-bit AES加密。 SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,SQLCipher具有占地面积小、性能因此它非常适合嵌入式应用的数据库保护,非常适合于移动开发。 github地址 导入SQLCipher加密库 implementation 'net.zetetic:android-database-sqlcipher:4.2.0' 替换原生的包 android.database.Cursor 为 net.sqlcipher.Cursor android.database.sqlite.SQLiteDatabase 为 net.sqlcipher.database.SQLiteDatabase

    3.2K10编辑于 2022-08-27
  • 来自专栏Eureka的技术时光轴

    解密聊天记录数据库

    解密聊天记录数据库 ---- 微信6.2.5使用sqlcipher进行AES加密,因此我们要得到密钥,根据编译的信息,可以得知微信使用 key=md5(IMEI+uin) | cut -c -7 , 解密微信聊天数据库就是简单的一行代码,(注意sqlcipher新版本(3.x)默认不向下兼容,需要使用,cipher_use_hmac 是兼容1.1.x,kdf_iter 是兼容2.1.x的)。 12345 sqlcipher EnMicroMsg.db 'PRAGMA key = "key"; PRAGMA cipher_use_hmac = off; PRAGMA kdf_iter = 4000 ; ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database ");DETACH DATABASE decrypted_database;' 或者 sqlcipher EnMicroMsg.db 'PRAGMA key = "key"; PRAGMA cipher_migrate

    2.9K40发布于 2019-07-24
  • 来自专栏移动开发的那些事儿

    Android Sqlite并发问题

    背景 我们的项目中使用的是ormlite的加密框架sqlcipher来进行数据库操作的 多进程操作同一个数据库文件出现了问题 net.sqlcipher.database.SQLiteException (Native Method) at net.sqlcipher.database.SQLiteStatement.executeInsert 这时候查询操作就会报错,解决方法就是让每一条的数据库记录的大小都不要超过1MB,这里是单条记录的大小不能超过1MB,如果是每条数据库记录大小都不超过1MB,但是10条加起来超过1MB,那这是没有问题的,此问题在旧版的sqlcipher 会出现,但是在新版的sqlcipher貌似已经修复了这个bug,但是只是提高了1MB的阀值,至于怎么提高的? 详见:https://github.com/sqlcipher/android-database-sqlcipher/issues/341#issuecomment-310289295,现在是改成动态来分配大小的

    1.9K40发布于 2018-09-04
  • 来自专栏iOS开发~

    iOS_Error(三)

    dyld: Library not loaded: @rpath/sqlcipher.framework/sqlcipher Reason: no suitable image found.  Did find: sqlcipher.framework/sqlcipher: code signature invalid for Targets -> Build Phases -> Link Binary

    60730编辑于 2022-07-20
  • 来自专栏腾讯开源的专栏

    【开源公告】WCDB(WeChat Database)于6月9日正式对外开源

    WCDB(WeChat Database)项目简介 WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。 加密:WCDB提供基于SQLCipher的数据库加密。 损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。 反注入: WCDB内建了对SQL注入的保护。 ---- WCDB for Android 基本功能 基于SQLCipher的数据库加密 使用连接池实现并发读写 内建 Repair Kit 可用于修复损坏数据库 针对占用空间大小优化的数据库备份/恢复功能

    1.6K50发布于 2018-03-02
  • 来自专栏Dotnet9

    SQLite加密新姿势,你知道吗?

    通过NuGet安装 Microsoft.Data.Sqlite.Core和 SQLitePCLRaw.bundle_e_sqlcipher 或通过程序包管理器安装 Install-Package Microsoft.Data.Sqlite.Core 另外我们需要安装加密包 Install-Package SQLitePCLRaw.bundle_e_sqlcipher· Dapper.Crud 个人比较喜欢Dapper,不喜欢的小伙伴可以使用自己的 没有Navicat的童鞋点这里下载安装 替换sqlite3.dll 步骤如下:打开Bin文件夹下的runtimes 根据自己系统选择文件夹x64还是x86复制win-x64\native 下的e_sqlcipher.dll 打开Navicat 的安装目录,将刚刚复制的e_sqlcipher.dll复制到该目录下。 然后将复制的e_sqlcipher.dll改名成 sqlite3.dll 替换掉原来的sqlite3.dll 设置密码 在数据库连接右键编辑连接-->高级-->设置数据库文件位置-->勾选已加密-->设置密码

    7.1K20发布于 2021-12-01
  • 来自专栏前端样式

    cocoapods项目迁移至swift package manager

    SQLCipher的迁移项目中使用了 SQLCipher 来存储敏感数据,但是 SQLCipher 只有 cocoapods 依赖,目前还没有 SPM 包,需要自行构建处理。 SQLCipher的构建步骤比较简单,参考官方文档即可,简而言之,就是首先 clone SQLCipher 项目,构建出 sqlite3.c 和 sqlite3.h,然后把这两个文件拷贝到项目目录下,再在 我是把 sqlite3.c 和 sqlite3.h 放在了 SQLCipher 目录下,然后把这个目录放在了 Target 对应的目录下,在Xcode导入的过程中,我勾选的是 Create folder

    2K40编辑于 2023-11-02
  • 来自专栏Linux技术资源分享

    基于 Android 读取微信本地 DB 数据 | 思维原理及技术分析

    md5(imei + uin))).substring(0, 7).toLowerCase() 数据库读写操作 import net.sqlcipher.Cursor; import net.sqlcipher.SQLException ; import net.sqlcipher.database.SQLiteDatabase; import net.sqlcipher.database.SQLiteDatabaseHook;

    1.5K30发布于 2019-03-04
  • 来自专栏非著名程序员

    微信技术团队的又一力作,WCDB 简单易用的数据库框架

    WCDB WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。 加密:WCDB提供基于SQLCipher的数据库加密。 损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。 反注入: WCDB内建了对SQL注入的保护。 接口请参考API reference WCDB for Android 基本功能 基于SQLCipher的数据库加密 使用连接池实现并发读写 内建 Repair Kit 可用于修复损坏数据库 针对占用空间大小优化的数据库备份 从源码编译 编译 WCDB 你可以使用预编译的依赖库(OpenSSL crypto 和 SQLCipher)来编译 WCDB for Android, 使用 Gradle 或 Android Studio

    2.1K70发布于 2018-02-09
  • 来自专栏CSDNToQQCode

    利用SQLChiper对Android SQLite数据库加密

    利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher 代码如下: package com.tuoqun.Tool; import android.content.Context; import android.util.Log; import net.sqlcipher.database.SQLiteDatabase ; import net.sqlcipher.database.SQLiteOpenHelper; public class DBCipherHelper extends SQLiteOpenHelper android.content.ContentValues; import android.content.Context; import android.util.Log; import net.sqlcipher.Cursor ; import net.sqlcipher.SQLException; import net.sqlcipher.database.SQLiteDatabase; import java.util.ArrayList

    1.4K50编辑于 2022-11-29
  • 来自专栏信且诚心之动

    CentOS 7 安装ror出现的问题

    --curdir --ruby=/usr/local/bin/$(RUBY_BASE_NAME) --with-sqlcipher --without-sqlcipher with-sqlite3-config --without-sqlite3-config --with-pkg-config --without-pkg-config --with-sqlcipher --without-sqlcipher --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include

    1.1K10编辑于 2022-12-28
  • 来自专栏Guangdong Qi

    iOS开发常用之数据库、缓存处理

    SQLCipher - SQLCipher使用256位AES加密,SQLCipher分享收费版本和免费版本。官方教程,加密你的SQLite - 各种sqlite数据库加密介绍 。

    2.5K40发布于 2018-12-14
领券