C# Sqlite Şifreleme
-
https://stackoverflow.com/questions/1381264/password-protect-a-sqlite-db-is-it-possible
https://stackoverflow.com/questions/41425759/set-password-for-sqlite-v3-database
con.SetPassword gözükmüyor hiç bir şekilde. Nuget'tan System.Data.SQLite ve sqlite harici paket mi yüklemem gerekiyor?
-
pragma key ile dener misin hocam
buradaki örnege bak https://www.bricelam.net/2016/06/13/sqlite-encryption.html
-
kullandiğin con objesi nedir bro ?
oledb nin connection objesi vs ondan gözükmüyordur. connection string de yazmayi denersen belki daha kolay olabilir.
-
SQLite dll içinde SetPassword metodu yok evet.
-
System.Data.SQlite ve Microsoft.Data.sqlite diye iki farklı isim alanına sahip sqlite paketleri var nuget üzerinde.
System.Data.SQlite ile sadece "using System.Data.SQlite" ekleyerek sqlite veritabanına erişip kullanabiliyorum fakat kavradığım kadarıyla bu pakette encrypt fonksiyonu yok. Ancak anlamadığım nokta neden stackoverflow üzerinde bunu çözüm olarak paylaşmışlar; Bu method sonradan mı kaldırıldı?
Microsoft.Data.Sqlite için ise kendi dökümanındaki örneği dahi çalıştıramadım.
using SQLitePCL;
using Microsoft.Data.Sqlite;eklediğim halde hata alıyorum. Ayrıca eklenmesi gereken paketler mi var?
https://docs.microsoft.com/tr-tr/dotnet/standard/data/sqlite/?tabs=netcore-cli
-
crestron diye bir firma veya ürün artık neyse. Kendileri bir utility library yazmışlar. Burada SQLiteConnection sınıfını kendilerince implemente etmişler. Ve sınıfta SetPassword methodu var. Sonuçta SQLiteConnection sınıfı için Ado.Net te bulunan DbConnection sınıfının SQLite için olan implementasyonu diyor. Bu elemanların hazırladığı DLL i bul açıp bakalım nasıl yazmıslar SetPassword methodunu. Ama ücretli sanırım bu dll. Kısaca baktım üye ol falan diyor. Üye olmadım sonra. Yada temel versiyonu ücretsizdir.
-
Exe decompile edildiğinde encryptd key deşifre edilemeyecek şekilde uygulanabilecek bir yöntem var mı tavsiye edebileceğiniz?
Başka yöntemlerde olabilir.
-
Https bunu yazdı
Exe decompile edildiğinde encryptd key deşifre edilemeyecek şekilde uygulanabilecek bir yöntem var mı tavsiye edebileceğiniz?
Başka yöntemlerde olabilir.
dotnet'in en büyük sorunu salinda bu. Obfuscation kullan ama tam koruma sağlamıyor. bunun farklı yöntemlere girmek gerekiyor.
-
rakkoc bunu yazdıHttps bunu yazdı
Exe decompile edildiğinde encryptd key deşifre edilemeyecek şekilde uygulanabilecek bir yöntem var mı tavsiye edebileceğiniz?
Başka yöntemlerde olabilir.
dotnet'in en büyük sorunu salinda bu. Obfuscation kullan ama tam koruma sağlamıyor. bunun farklı yöntemlere girmek gerekiyor.
Yanıt için teşekkür ediyorum hocam.
Aslında kullanacakların bunları yapabileceğine pek ihtimal vermiyorum ama yinede tedbir almak lazım. Veriler lokalde tutulacak değerli veriler. Db olarak sqlite kullanılıyor , olurda bu sqlite dosyası açıldığında okunmaması gerekiyor.
-
Selamlar,
sqlite extension sayesinde kriptolama hizmeti veriyor olarak biliyorum ama hiç kullanmadım. Tek dosyadan çalıştığı için zaten write yaparken dosyayı kilitliyor, birde encryption yapması asıl amaçı hız ve basitliğin olumsuz yönde etkiler.
Genelde; sqlite yazılacak veri, uygulama içinde kriptolanır ve öyle yazılır. Firefox, android vb. projeler içerisinde kullanımı bu şekilde.Güvenlik konusunda malesef IL ve Net framework yapısı gereği yüzde yüz native code elde edemezsin. Bunun için kendi Ngen ve .Net Native gibi yöntemler var ama yinede MSIL kodu içinde barındırıyor.
Son olarak IL2CPU adında compiler çıkmıştı ve gerçek native code iddasi vardı ama hiç uğraşmadım. Bilen varsa bilgilendirsin. -
Https bunu yazdırakkoc bunu yazdıHttps bunu yazdı
Exe decompile edildiğinde encryptd key deşifre edilemeyecek şekilde uygulanabilecek bir yöntem var mı tavsiye edebileceğiniz?
Başka yöntemlerde olabilir.
dotnet'in en büyük sorunu salinda bu. Obfuscation kullan ama tam koruma sağlamıyor. bunun farklı yöntemlere girmek gerekiyor.
Yanıt için teşekkür ediyorum hocam.
Aslında kullanacakların bunları yapabileceğine pek ihtimal vermiyorum ama yinede tedbir almak lazım. Veriler lokalde tutulacak değerli veriler. Db olarak sqlite kullanılıyor , olurda bu sqlite dosyası açıldığında okunmaması gerekiyor.
Boyle bir noktada verinin değerine göre güvenlik artıyor. Biz bir C dll'i import edip, dll kendini import eden app'in hash'ini alip eğer hash tutuyor ise o zmn bir key üretip onun ile aciyordu. vs. vs. vs. farkli işler var hep.