crypt.cpp

来自「命令行下调用SQLite3.dll加密/解密SQLite」· C++ 代码 · 共 53 行

CPP
53
字号
// name: Crypt.cpp
// This prog is used to encrypt/decrypt C/C++ API for sqlite3 .
// data : 2009/01/15

#include <stdio.h>
#include <stdlib.h>
#include "string.h"
#include "sqlite3.h" 
#define _DEBUG_

//主函数(带参数:数据库文件名含绝对路径、读或写密钥、新写密钥或解密用固定密钥)
int main(int argc , char *argv[])
{
  sqlite3 *db = NULL;
  char *dbname;
  char *passwd;
  char *key;

  if((argc>=2) && (argc<=4))
  {
    dbname = argv[1];

	  //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
    if(sqlite3_open(dbname, &db)==0)
	  {
   //加密数据库
	    if(argc==3)
	    {
	      passwd = argv[2];
	      sqlite3_rekey(db, passwd, strlen(passwd));
	    }

	    if(argc==4)
	    {
		    passwd = argv[2];
        if(sqlite3_key(db, passwd, strlen(passwd))==0)
        {
		      key = argv[3];
          //解密数据库
	        if(strcmp(key,"winton_0451-83027110")==0)
	          sqlite3_rekey(db,NULL,0);
	        //更换新密钥
          else
	          sqlite3_rekey(db, key, strlen(key));
        }
	    }
	  }
    sqlite3_close(db); //关闭数据库
  }
  return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?