Database Tutorials SQLite Database Encryption পদ্ধতি গাইড ও নোট

340

SQLite ডেটাবেস ফাইল সাধারণত plaintext (অপাঠযোগ্য নয় এমন) ফর্ম্যাটে থাকে, যার ফলে এটি সহজেই অনাকাঙ্ক্ষিত ব্যক্তি বা আক্রমণকারীর দ্বারা অ্যাক্সেসযোগ্য হতে পারে। SQLite ডেটাবেস ফাইলটি নিরাপদ রাখতে encryption বা এনক্রিপশন একটি গুরুত্বপূর্ণ পদ্ধতি। এনক্রিপশন ডেটাবেস ফাইলটির সমস্ত ডেটা কিপথে রূপান্তরিত করে, যাতে শুধুমাত্র অনুমোদিত ব্যবহারকারী বা প্রোগ্রামই সেই ডেটা অ্যাক্সেস করতে পারে।

SQLite-এ ডেটাবেস এনক্রিপশনের জন্য বিভিন্ন পদ্ধতি রয়েছে, তবে SQLite নিজে এনক্রিপশন সমর্থন করে না। তবে, আপনি SQLCipher ব্যবহার করে SQLite ডেটাবেস এনক্রিপ্ট করতে পারেন। SQLCipher একটি ওপেন সোর্স লাইব্রেরি যা SQLite-এ ট্রান্সপারেন্ট এনক্রিপশন যোগ করে।


১. SQLCipher দিয়ে SQLite ডেটাবেস এনক্রিপ্ট করা

SQLCipher একটি ওপেন সোর্স লাইব্রেরি যা SQLite ডেটাবেসে 256-বিট AES এনক্রিপশন যোগ করে। এটি SQLite-এর উপর ভিত্তি করে কাজ করে এবং একটি অত্যন্ত নিরাপদ এবং সুবিধাজনক পদ্ধতি প্রদান করে।

SQLCipher ইনস্টলেশন

SQLCipher ব্যবহার করতে প্রথমে আপনাকে এটি ইনস্টল করতে হবে। এখানে কিছু প্ল্যাটফর্মে SQLCipher ইনস্টল করার পদ্ধতি দেওয়া হল:

১.১ Linux-এ SQLCipher ইনস্টল করা

  • Ubuntu/Debian:

    sudo apt-get install sqlcipher
    

১.২ macOS-এ SQLCipher ইনস্টল করা

  • Homebrew ব্যবহার করে ইনস্টল করা যায়:

    brew install sqlcipher
    

১.৩ Windows-এ SQLCipher ইনস্টল করা

  • Windows-এ SQLCipher ইনস্টল করতে, আপনাকে SQLCipher-এর বিল্ড করা বাইনারি ফাইল ডাউনলোড করতে হবে এবং তা চালাতে হবে। এটি SQLCipher GitHub Release Page থেকে ডাউনলোড করা যেতে পারে।

২. SQLCipher দিয়ে ডেটাবেস এনক্রিপ্ট করা

SQLCipher ব্যবহার করে একটি নতুন SQLite ডেটাবেস তৈরি এবং এনক্রিপ্ট করতে নিম্নলিখিত পদ্ধতি অনুসরণ করতে হবে।

২.১ নতুন এনক্রিপ্টেড ডেটাবেস তৈরি করা

sqlcipher encrypted.db

এটি একটি এনক্রিপ্টেড ডেটাবেস ফাইল encrypted.db তৈরি করবে। এরপর, আপনি এনক্রিপশন কিপথো প্রবেশ করাতে হবে। কিপথো হল একটি পাসওয়ার্ড যা ডেটাবেসটি এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হবে।

PRAGMA key = 'your_secret_key';

এটি ডেটাবেসে your_secret_key পাসওয়ার্ড ব্যবহার করে এনক্রিপশন সেট করবে।

২.২ ডেটা ইনসার্ট করা

একবার এনক্রিপশন কিপথো দেওয়া হলে, আপনি সাধারণ SQLite কুয়েরি ব্যবহার করে ডেটা ইনসার্ট করতে পারবেন।

CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);
INSERT INTO users (name) VALUES ('Alice');

এটি এনক্রিপ্টেড ডেটাবেসে ডেটা ইনসার্ট করবে।

২.৩ এনক্রিপ্টেড ডেটাবেসে ডেটা নির্বাচন করা

ডেটা নির্বাচন করতে, আপনি সাধারণ SELECT কুয়েরি ব্যবহার করতে পারবেন:

SELECT * FROM users;

এটি এনক্রিপ্টেড ডেটাবেস থেকে ডেটা নির্বাচন করবে। SQLCipher দ্বারা এনক্রিপ্ট করা ডেটাবেসের ক্ষেত্রে, কেবলমাত্র সঠিক কিপথো (পাসওয়ার্ড) প্রদান করলেই ডেটা অ্যাক্সেস করা সম্ভব হবে।


৩. এনক্রিপ্টেড ডেটাবেসের ডিক্রিপশন

এনক্রিপ্টেড ডেটাবেস খুলতে, আপনি আবার কিপথো প্রদান করতে হবে।

৩.১ ডেটাবেস ডিক্রিপ্ট করা

sqlcipher encrypted.db
PRAGMA key = 'your_secret_key';

এটি encrypted.db ডেটাবেসটি খুলবে এবং your_secret_key কিপথো ব্যবহার করে ডেটাবেসের ডেটা অ্যাক্সেস করতে সক্ষম হবে।


৪. SQLCipher-এর সাথে কোডিং (ব্যবহারকারী অ্যাপ্লিকেশন)

আপনি যখন অ্যাপ্লিকেশন ডেভেলপ করছেন, তখন SQLCipher এর মাধ্যমে SQLite ডেটাবেস এনক্রিপ্ট করতে পারেন। বেশ কিছু প্রোগ্রামিং ভাষায় (যেমন Python, C, Java, Objective-C, etc.) SQLCipher ব্যবহৃত হতে পারে।

৪.১ Python ব্যবহার করে SQLCipher

Python-এ SQLCipher ব্যবহার করতে sqlcipher লাইব্রেরি ব্যবহার করা হয়। উদাহরণ:

import sqlcipher3

# Connect to encrypted database
conn = sqlcipher3.connect('encrypted.db')
conn.execute("ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'your_secret_key';")

# Create table and insert data
conn.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
conn.execute("INSERT INTO users (name) VALUES ('Alice')")

# Select data
cursor = conn.execute("SELECT * FROM users")
for row in cursor:
    print(row)

conn.close()

এখানে, your_secret_key পাসওয়ার্ড দিয়ে এনক্রিপ্টেড SQLite ডেটাবেসে ডেটা ইনসার্ট এবং সিলেক্ট করা হয়েছে।


সারাংশ

SQLite নিজে এনক্রিপশন সমর্থন না করলেও, আপনি SQLCipher ব্যবহার করে SQLite ডেটাবেসে 256-বিট AES এনক্রিপশন যোগ করতে পারেন। এটি ডেটাবেসের ডেটা সম্পূর্ণভাবে এনক্রিপ্ট করে, যা ডেটাবেস ফাইলের নিরাপত্তা নিশ্চিত করে। SQLCipher একটি ওপেন সোর্স লাইব্রেরি এবং এটি বিভিন্ন প্ল্যাটফর্মে এবং প্রোগ্রামিং ভাষায় ব্যবহৃত হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...