码迷,mamicode.com
首页 > 数据库 > 详细

SQLite数据库(文件)

时间:2018-11-13 14:27:49      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:不用   closed   targe   htm   encrypted   程序   部分   语法   aes   

  • SQLite
    • SQLite is a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine.
    • https://www.sqlite.org/index.html
    • License: Public Domain, Open-Source, not Open-Contribution
  • 管理工具
  • 特殊语法
  • 密码/加密
    • SQLite有密码功能,并且设置密码之后,数据库文件就会被加密,可以使用notepad++的工具查看加密前后的文件内容,加密前都是明文,包括数据库元数据和数据等
    • SQLite for .NET (System.Data.SQLite)提供了在SQLiteConnection上修改/设置密码的函数:public void ChangePassword(string newPassword);
    • 技术分享图片
      using (SQLiteConnection connection = new SQLiteConnection(dbFileConnectionString))
                  {
                      connection.Open();
                      connection.ChangePassword(GenerateEncryptedDBPwd());
                      connection.Close();
                  }
      View Code
    • 为了信息安全,可以自行生成特殊密码
      • 比如结合windows用户的sid程序自定义的一个密钥组合起来使用AES加密得到密码。这样在客户端程序中,就可以为每个用户生成一个特定密码的数据库文件,那么不同用户的密码就不同了。同时保证了用户特殊性和程序特征。
      • 技术分享图片
                    System.Security.Principal.WindowsIdentity currentUser = System.Security.Principal.WindowsIdentity.GetCurrent();
                    string sid = currentUser.User.ToString();
        View Code
  • 在代码中构造连接字符串(不用自己拼各个部分了)
    • 技术分享图片
                  SQLiteConnectionStringBuilder builder = SQLiteFactory.Instance.CreateConnectionStringBuilder() as SQLiteConnectionStringBuilder;
      
                  // set up connection string for user data db in code
                  builder.DataSource = userDataDBFilePath;
                  builder.Password = GenerateEncryptedDBPwd();
                  userDataDB = new UserDataContext(builder.ToString());
      View Code

SQLite数据库(文件)

标签:不用   closed   targe   htm   encrypted   程序   部分   语法   aes   

原文地址:https://www.cnblogs.com/wyp1988/p/9951625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!