使用SQLCipher加密或解密已存在的数据库

SQLCipher提供了sqlcipher_export()函数,该函数可以方便的对一个普通数据库导入到SQLCipher加密加密的数据库中,操作方式如下:

  •   $ ./sqlcipher plaintext.db  
    
  •   sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'testkey';  
    
  •   sqlite> SELECT sqlcipher_export('encrypted');  
    
  •   sqlite> DETACH DATABASE encrypted;  
    

例子:
1.cd到在安装好sqlcipher文件位置处,使用命令:sqlcipher /Documents/iPhoneAoi/iPhoneAoiServer/Resource/Data/pl.db //打开待加密数据库
2.ATTACH DATABASE ‘encrypted.db’ AS encrypted KEY ‘U2FsdGVkX1’;
3.SELECT sqlcipher_export(‘encrypted’);
DETACH DATABASE encrypted;
4. .exit退出
5. 搜索全局搜索 encrypted.db 文件 即是已加密文件
EXAMPLE:

  1. sqlcipher pl_sec.db
  2. ATTACH DATABASE ‘jmsec.db’ AS jmsec KEY ‘U2FsdGVkX1’;
  3. SELECT sqlcipher_export(‘jmsec’);
  4. DETACH DATABASE jmsec;

解除使用SQLCipher加密的数据库密码
sqlcipher_export()函数同样可以将SQLCipher加密后的数据库内容导入到未加密的数据库中,从而实现解密,操作方式如下:

  •   $ ./sqlcipher encrypted.db  
    
  •   sqlite> PRAGMA key = 'testkey';  
    
  •   sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY '';  -- empty key will disable encryption 
    
  •   sqlite> SELECT sqlcipher_export('plaintext');  
    
  •   sqlite> DETACH DATABASE plaintext;  
    

EXAMPLE:

  1. sqlcipher jam.dat
  2. PRAGMA key = ‘U2FsdGVkX1’;
  3. .tables
  4. ATTACH DATABASE ‘pl.db’ AS pl KEY ‘’;
  5. SELECT sqlcipher_export(‘pl’);
  6. DETACH DATABASE pl;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值