هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

با عضویت در سایت از امکانات فوق العاده بهرمنده خواهید شد.

آموزش SQLCipher در اندروید

آموزش SQLCipher در اندروید

سلام دوستات عزیز در این سری از آموزش برنامه نویسی اندروید به آموزش SQLCipher در اندروید می پردازیم از SQLCipher به منظور رمزگذاری بروی دیتابیس Sqlite استفاده می شود با استفاده از کتاب خانه SQLCipher به راحتی می توانیم دیتابیس Sqlite را ایمن کنیم و اگر اپلیکیشن یا برنامه ما Decompile یا کرک شد و دارای دیتابیس Sqlite بود به راحتی دیتابیس شما در دسترس بقیه قرار نگیرید در ادامه با ما همراه باشید تا دیتابیس Sqlite خودتان را ایمن و امنیت آن را بالا ببرید.

 

SQLCipher چیست ؟

یک کتابخانه است که بروی دیتابیس Sqlite رمزگذاری می کند و هنگامی که کاربر آن دیتابیس رو مورد استفاده قرار دهید لازم است رمز مربوط به آن دیتابیس را وارد کند.

برای استفاده از این کتابخانه ابتدا باید آن را به پروژه خود اضافه کنید.

وارد فایل Build.gradle از نوع Module شده سپس در بخش dependencies خط زیر را قرار دهید.

پروژه را sync کنید قند شکن فراموش نشود.

بعد از اینکار باید کتاب خانه را در پروژه لود کنید و در نظر داشته باشید نباید این کلاس android.database.sqlite.SQLiteDatabase را import کنید بلکه باید کلاس net.sqlcipher.database.SQLiteDatabase را import کنید.

برای اینکه کتابخانه را لود کرده و یک دیتابیس بسازید که همراه با پسورد باشد از کد زیر استفاده کنید.

در بالا یک دیتابیس همراه با پسورد your_password ساختیم شما می توانید آن را تغییر دهید برای Insert کردن در آن هم یک کد نوشته شده است.

در بالا یک چدول به نام t1 همراه با دو فیلد a,b ساخته شده است زیر همان کد عمل insert نیز انجام شده است.

برای تست دیتابیس بالا می توانید بعد از اجرا فایل .db آن را برداشته و در db browser تست کنید که باز نمی شود البته باز می شود ولی از شما پسورد می خواهد.

کد کامل HelloSQLCipherActivity.java

 

این آموزش هم به پایان رسید.

موفق و پیروز باشید.

درباره نویسنده

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۵ )

  1. zeyton
    22, آگوست , 2018 در 7:48 ب.ظ

    سلام وقتی برنامه اجرا می شود که نیازی به وارد کردن این رمز نیست درسته؟

    • محمد حسین جعفری پور
      22, آگوست , 2018 در 7:53 ب.ظ

      سلام بله نیازی به وارد کردن رمز نیست در ابتدای کار رمز بروی فایل گذاشته می شود و برنامه می تواند از آن استفاده کند ولی برنامه های دیگر خیر.

      موفق باشید.

  2. محمد
    17, فوریه , 2019 در 2:50 ب.ظ

    سلام برای دیتابیس آماده باید چه کار کنیم؟

    • 17, فوریه , 2019 در 8:13 ب.ظ

      تفاوت چندانی ندارد.

  3. saman
    23, نوامبر , 2019 در 8:57 ب.ظ

    سلام وقت بخیر

    قبلا در تابع super میشد محل دیتابیس رو هم تعیین کرد بدین صورت

    super(context, DATABASE_NAME ,db_patch,null, DATABASE_VERSION);

    اما الان چرا در sqlcipher به هیچ وجه نمیشه این db_patch رو قرار داد.
    super(context, db_name,null, db_version);