台灣最大程式設計社群網站
線上人數
1130
 
會員總數:246133
討論主題:189712
歡迎您免費加入會員
討論區列表 >> C# >> C#(WinForm)中做用SQLite加密的方法
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C#(WinForm)中做用SQLite加密的方法
價值 : 250 QP  點閱數:144 回應數:3
樓主

Amigo
初學者
35 9
736 43
發送站內信

各位大大,小弟之前有使用過SQLite寫過一個小程式,使用上很成功.
這次本想再利用經驗再寫另一個小程式,但這次想在SQLite上加密保一下安全性(之前的沒有用加密)
而且小弟是想用程式令小程式(第一次使用程式時)自動生成一個加密的SQLite檔(.db3)

小弟之前是用NuGet內的System.Data.SQLite,上GOOGLE大神找資料有的說System.Data.SQLite有加密(參考1,參考2)

但小弟在測試時一直都用不到資料中的SetPassword()和ChangePassword(),根本沒有這選項.

小弟也使用過SQLiteConnectionStringBuilder這個方法,但一直報錯


請問有使用過SQLite加密的大大嗎?能告訴小弟到底要安裝NuGet內那些套件才能使用SQLite加密?
請問能指點小弟使用方法嗎?

搜尋相關Tags的文章: [ SQLite ] , [ 加密 ] , [ SQLCipher ] ,
本篇文章發表於2020-10-20 12:08
== 簽名檔 ==
本人只是一個初學者,如果發言有錯請立即指出.
1樓
回應

春天
檢舉此回應
SQLite開源版本沒有支持加密(付費的好像有)

如果沒有人工開啟DB檔的需求,可以直接對DB檔做加密

當然這種反轉的加密方式不好,我只是解釋一下加解密概念
基本就是對資料流做演算法讓機器或人無法解讀
若有需求加密方法可以搜尋一下應該有非常多資料
本篇文章回覆於2020-10-21 14:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Amigo
檢舉此回應
春天大大,
SQLite開源版本沒有支持加密

你說得沒錯,我發現我使用的System.Data.SQLite應該就是沒有加密的.資料參考:參考

但我看到很多人說可以使用SetPassword()和ChangePassword()來加密碼的,後來又看到一參考提到,應該是以前有但現在沒有了.(但這參考內的回答也不正確,回答內使用的代碼是Microsoft.Data.Sqlite的,和System.Data.SQLite不同的)

如果我理解沒有錯誤,春天大的這代碼應該是把整個BD檔加密/解密.
但其實我只是想為BD檔加上密碼,令別人不能太隨便可以開到,人工開啟時要輸入密碼,我只要直接在代碼內直接硬寫入密碼就好了.

我為我沒有說清楚抱歉,令春天大誤會我的意思了.

暫時在測試Microsoft.Data.Sqlite,但寫法跟System.Data.SQLite不太一樣,感覺沒有後者的方便直觀.

希望有人能提議其他方法或替代方案.
本篇文章回覆於2020-10-22 16:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Amigo
檢舉此回應
終於被我找到方法了,或許應該說是找到原因了.

在我不段的找方法時候,在一個問題的參考中找到了頭緒

參考網址內的頭緒:
version 113 did drop support SetPassword. SEE is the new way to go, even thought it does cost 2000$ and requires manual compilation. – Thomas Christof Sep 16 at 0:25


雖然這文章是很久以前發問,但這回答是不久前的.

然後我查看了NuGet套件內的System.Data.SQLite套件,果然是只有最新版本V1.0.113.2(只有唯一版本可選)
我查看我以前小程式使用的版本,發現是比較舊的V1.0.105.2,這時我就想"我這舊版本會不會有SetPassword()和ChangePassword()功能?"
一試發現,真的有SetPassword()和ChangePassword()功能,再試實際操作效果,測試生成的DB檔在使用SQLiteStudio時必須輸入密碼才能開啟,其他沒有解密功能軟件開啟會報錯.
也就是說我這V1.0.105.2版本的System.Data.SQLite套件是有加密碼功能的.

之後我把這舊套件導出再導入到我的新小程式內,能正常使用,終於找到方法解決我的問題.

之前我也試過使用網路上其他人士推薦的套件,但可惜能參考的例子很少,不太會使用,果然還是用習慣的才是最好的.

雖然我不知道到底是由那個版本開始加密功能被取消了,只能確定版本V1.0.113.2是沒有加密,而家V1.0.105.2版本是有加密的

希望能對和我一樣有同樣問題的人能夠有幫助.
本篇文章回覆於2020-10-26 11:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.