标签: sqlcipher

如何开始使用SQLCipher for android?

我需要使用SQLCipher for android ...我已经使用SQLite创建了我的应用程序,并希望将其转换为SQLCipher.

问题是,我对SQLCipher一无所知.

我在这个链接中读过它:http://sqlcipher.net/sqlcipher-for-android/

但我还是不太清楚.我想知道你是否可以为Android教程提供一些基本的sqlcipher,其中所有内容都是从绝对基础知识中轻松教授的.

谢谢!

database android sqlcipher android-sqlite

17
推荐指数
2
解决办法
2万
查看次数

如何在Android中将ORMLite与SQLCipher一起使用?

我想在我的Android项目中使用OrmLiteSQLCipher,但是这两个库都有自己的抽象SQLiteOpenHelper类来实现.Java不允许类扩展两个类,如果我单独实现,它们将不会相互通信.

我怎样才能一起工作?如何解决SQLiteOpenHelper实施问题?

android ormlite sqlcipher

16
推荐指数
2
解决办法
7577
查看次数

如何在命令行上解密加密的sqlcipher数据库文件?

问题很简单

我有的是:

  • 我有一个使用sqlcipher 加密数据库文件.
  • 我也用于加密这个db文件的密码

我需要的是:

  • 我需要解密数据库文件 /需要一个未加密/非加密/解密的数据库文件.

encryption terminal sqlcipher

16
推荐指数
3
解决办法
5万
查看次数

SQLCipher和CoreData问题:CoreData无法解决问题

我有一个SQLCipher数据库加密和CoreData的问题:当我使用持久存储协调器与SQLCipher时,它会在第一次重新启动应用程序后始终崩溃并出现故障一对多关系.因此,当我第一次启动应用程序时,我创建了具有关系的NSManagedObjects,然后,当我保存数据库并重新打开应用程序时,当我尝试访问这些关系时它会崩溃.没有SQLCipher一切正常.

以下是SQLCipher持久存储初始化的代码:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (!_persistentStoreCoordinator) {
        NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyApp.sqlite"];
        NSDictionary *options = @{EncryptedStorePassphraseKey: @"MyApp",
                                                            EncryptedStoreDatabaseLocation: storeURL};
        NSError *error;
        _persistentStoreCoordinator = [EncryptedStore makeStoreWithOptions:options managedObjectModel:[self managedObjectModel] error:&error];
        if (error) {
            NSLog(@"%@", error);
        }
    }

    return _persistentStoreCoordinator;
}
Run Code Online (Sandbox Code Playgroud)

我创建NSManagedObject的代码:

- (id)createObjectWithClassName:(NSString *)name
{
    NSManagedObject *object = [[NSClassFromString(name) alloc] initWithEntity:[NSEntityDescription entityForName:name inManagedObjectContext:self.context] insertIntoManagedObjectContext:self.context];
    return object;
}
Run Code Online (Sandbox Code Playgroud)

core-data objective-c ios sqlcipher

13
推荐指数
1
解决办法
700
查看次数

重新打开sqlcipher DB时,CREATE TABLE android_metadata失败

我有以下SqlCipher数据库.它在我第一次安装应用程序时工作正常,但如果我关闭,从最近的历史记录中移除应用程序(在堆栈外)并重新打开应用程序,它崩溃时出现以下错误.一旦遇到异常,db就不会打开,例如我在Activity中放置一个1/0来强制它崩溃,同样的情况发生在下面.

07-20 15:39:05.669: E/Database(21425): CREATE TABLE android_metadata failed
07-20 15:39:05.669: E/Database(21425): Failed to setLocale() when constructing, closing the database
07-20 15:39:05.669: E/Database(21425): net.sqlcipher.database.SQLiteException: file is encrypted or is not a database
Run Code Online (Sandbox Code Playgroud)

.

我发现以下链接似乎可以解决问题(我不确定它是否是解决方案),但我不确定如何将其实现到我的代码中.任何人都可以帮忙或告诉我为什么我收到此错误?

http://rootslash.net/88542/sqlcipher-cant-open-database-after-apprestart

这是我的数据库代码,我使用SqlCipher SQLiteOpenHelper来创建数据库.我想我需要修改这个代码,以便它返回一个DB对象(如果已存在)并创建一个(如果它不存在).我只是不确定如何.

提前致谢.

[EDIT1]我有一个LoginActivity来验证用户的凭据.如果它们是有效的,它会加载MenuActivity,我在其中放置1/0来强制崩溃.崩溃后,如果我重新打开应用程序,它会在登录数据库用户表行的LoginActivity中崩溃.

DBModel是一个具有SqliteOpenHelper和CRUD方法的类.

因此它在DBModel类中的checkUserInDB()崩溃,后者又调用queryAllFromUser().

07-25 13:45:43.043  10654-10654/? E/AppObj? Build.SERIAL = SH43PWM07311
07-25 13:45:43.203  10654-10654/? E/AppObj? secretKey = com.android.org.bouncycastle.jcajce.provider.symmetric.util.BCPBEKey@31a79cea
07-25 13:45:43.643  10654-10654/? E/Database? CREATE TABLE android_metadata failed
07-25 13:45:43.643  10654-10654/? E/Database? Failed to setLocale() when constructing, closing the database
    net.sqlcipher.database.SQLiteException: file is encrypted or is …
Run Code Online (Sandbox Code Playgroud)

android sqlcipher

11
推荐指数
1
解决办法
1220
查看次数

如何在Swift中使用'FMDB/SQLCipher'进行加密和解密?

我使用FMDB在Swift中创建了一个SQLite数据库.但现在我想加密它.那么有谁能帮助我使用'FMDB/SQLCipher'加密和解密SQLite数据库的Swift版本?我无法找到一个很好的教程来理解这一点.

fmdb ios sqlcipher swift

11
推荐指数
1
解决办法
1285
查看次数

java.lang.UnsatisfiedLinkError:无法加载stlport_shared:findLibrary返回null(tess-two)

我正在使用sqlcipher.jar来加密android中的数据库,并使用它的本机库

libs/armeabi文件夹

1)libdatabase_sqlcipher.so

2)libsqlcipher_android.so

3)libstlport_shared.so

libs/x86文件夹

1)libdatabase_sqlcipher.so

2)libsqlcipher_android.so

3)libstlport_shared.so

我已导入的libs /文件夹中名为sqlcipher.jar的 jar文件

现在每件事情都工作正常,数据库正在提取,从sqlite读取也工作正常,我也没有在SQLiteDatabase.loadLibs(context)中得到任何错误; 线

在此输入图像描述 但是我想在我的项目中实现OCR来实现这一点我从这个http://code.google.com/p/tesseract-ocr/https://github.com/rmtheis/导入名为tess-two的项目tess-two有一个名为tess-two文件夹的库

我正在将该项目库导入到我的android项目中,我清理了我的项目并在那时运行它我得到了SQLiteDatabase.loadLibs(context)行中的错误;

在此输入图像描述

再次,当我删除tess-two库并从设备卸载并干净并构建并运行它工作正常没有错误发生,我想在我的项目中也有人帮助我的OCR功能

java android tesseract android-ndk sqlcipher

10
推荐指数
2
解决办法
1万
查看次数

加密SQLite数据库而不增加应用程序大小?

有没有办法加密我的Android应用程序的数据库,减少应用程序的大小?我已经尝试了SQLcipher,但它增加了我的应用程序的大小10MB,这是巨大的.

database encryption android sqlcipher

10
推荐指数
1
解决办法
1305
查看次数

GreenDA与Sqlcipher集成示例

我使用GreenDAO设置了一个新项目,能够使用DaoGenerator使用ExampleDAO生成.一切正常.

我还在android资源文件夹中提供了一个预先填充的sqlite数据库,在app运行时,它被复制到android数据库系统路径.

现在我想与SqlCipher集成,以加密我的数据库...如果有人可以帮助或提供示例应用程序,那将是一个很大的帮助.

android sqlcipher greendao

9
推荐指数
1
解决办法
3252
查看次数

Android无法使用greendao使用sqlcipher加密数据库

我正在使用greendao ORM.我正在尝试使用SQLCipher加密我的数据库.Greendao自动支持sqlcipher.所以我写了以下加密代码.

 DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "encrypted-db",null);

        Database db = helper.getEncryptedWritableDb("mySecretPassword");
        DaoSession session = new DaoMaster(db).newSession();
        return session;
Run Code Online (Sandbox Code Playgroud)

但是,每当我使用此会话执行任何数据库操作时,都会出错

 Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/greenrobot/greendao/database/DatabaseOpenHelper$EncryptedHelper;
                                                                       at org.greenrobot.greendao.database.DatabaseOpenHelper.checkEncryptedHelper(DatabaseOpenHelper.java:121)
                                                                       at org.greenrobot.greendao.database.DatabaseOpenHelper.getEncryptedWritableDb(DatabaseOpenHelper.java:133)
Run Code Online (Sandbox Code Playgroud)

我的gradle依赖是 - >

compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'org.greenrobot:greendao:3.2.0'
    compile 'com.google.code.gson:gson:2.8.0'
Run Code Online (Sandbox Code Playgroud)

我的计划是

-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
# If you do not use Rx:
-dontwarn rx.**
Run Code Online (Sandbox Code Playgroud)

那么如何使用greendao和SQLCipher加密我的数据库?

PS:Database db = helper.getEncryptedWritableDb("mySecretPassword"); 此行在执行任何数据库操作时生成错误.

 Database db …
Run Code Online (Sandbox Code Playgroud)

android sqlcipher greendao sqlcipher-android greendao3

9
推荐指数
1
解决办法
796
查看次数