কম্পিউটার টিউটোরিয়াল

MySQL-এ AES_ENCRYPT ও AES_DECRYPT ব্যবহার করে স্ট্রিং এনক্রিপ্ট ও ডিক্রিপ্ট করা

MySQL-এ বিল্ট-ইন AES_ENCRYPT() এবং AES_DECRYPT() ফাংশন ব্যবহার করে ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করা যায়।

সিনট্যাক্স

-- এনক্রিপ্ট করে ইনসার্ট
INSERT INTO yourTableName VALUES (AES_ENCRYPT(yourValue, yourSecretKey));

-- ডিক্রিপ্ট করে পড়া
SELECT CAST(AES_DECRYPT(yourColumnName, yourSecretKey) AS CHAR) FROM yourTableName;

উদাহরণ

টেবিল তৈরি (BLOB টাইপ ব্যবহার করা হয়েছে বাইনারি ডেটা রাখতে):

CREATE TABLE demo63 (
    value BLOB
);

এনক্রিপ্ট করে ইনসার্ট (সিক্রেট কী: 'PASS'):

INSERT INTO demo63 VALUES (AES_ENCRYPT('John', 'PASS'));
INSERT INTO demo63 VALUES (AES_ENCRYPT('David', 'PASS'));
INSERT INTO demo63 VALUES (AES_ENCRYPT('123456', 'PASS'));

এনক্রিপ্টেড ডেটা (হেক্স ফরম্যাটে):

+------------------------------------+
| value                              |
+------------------------------------+
| 0x16D8A4F11321D761920783BF96BB8314 |
| 0x0A85099F705F21D27B0129C54C4473AA |
| 0xAB7C6D6068BC100B0F04D1C4EA068AC9 |
+------------------------------------+

ডিক্রিপ্ট কোয়েরি

SELECT CAST(AES_DECRYPT(value, 'PASS') AS CHAR) FROM demo63;

আউটপুট

+------------------------------------------+
| CAST(AES_DECRYPT(value, 'PASS') AS CHAR) |
+------------------------------------------+
| John                                     |
| David                                    |
| 123456                                   |
+------------------------------------------+

ব্যাখ্যা:

  • AES_ENCRYPT AES (Advanced Encryption Standard) алгорит্ম ব্যবহার করে ১২৮-বিট কী দিয়ে এনক্রিপ্ট করে।
  • CAST(... AS CHAR) বাইনারি রেজাল্টকে পাঠযোগ্য স্ট্রিংএ কনভার্ট করে।
  • একই সিক্রেট কী দিয়ে ডিক্রিপ্ট করতে হয়।
  • বড় ডেটার জন্য AES_ENCRYPT ব্লক সাইজ (১৬ বাইট) অনুযায়ী প্যাডিং করে।

সিকিউরিটি নোট: সিক্রেট কী কোডে হардকোড না করে ইনভায়রনমেন্ট ভেরিয়েবল বা কী ম্যানেজমেন্ট সিস্টেম থেকে নেওয়া উচিত।

  1. MySQL 8.0-এ REGEXP_REPLACE() ব্যবহার করে সংখ্যা বাদ দিয়ে শুধু স্ট্রিং এবং '/' এক্সট্র্যাক্ট করুন

  2. MySQL-এ VARCHAR কলামে স্ট্রিং ও সংখ্যা মিশ্রিত ডেটা সর্ট করা (ORDER BY + 0)

  3. পাইথনে ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করা

  4. অ্যান্ড্রয়েড ডিভাইসে ফাইল এনক্রিপ্ট ও ডিক্রিপ্ট করার পদ্ধতি