TO_BASE64() और FROM_BASE64() फ़ंक्शन
MySQL 5.6+ में बिल्ट-इन Base64 एन्कोडिंग/डिकोडिंग के लिए दो फ़ंक्शन हैं:
TO_BASE64(str)- स्ट्रिंग को Base64 में एन्कोड करता हैFROM_BASE64(str)- Base64 स्ट्रिंग को डिकोड करता है
सिंटैक्स
-- एन्कोड
SELECT TO_BASE64('anyValue') AS EncodedValue;
-- डिकोड
SELECT FROM_BASE64('encodedValue') AS DecodedValue;
व्यावहारिक उदाहरण
केस 1: एन्कोड
mysql> SELECT TO_BASE64('Password') AS Base64EncodeValue;
+-------------------+
| Base64EncodeValue |
+-------------------+
| UGFzc3dvcmQ= |
+-------------------+
1 row in set (0.00 sec)
केस 2: डिकोड
mysql> SELECT FROM_BASE64('UGFzc3dvcmQ=') AS Base64DecodeValue;
+-------------------+
| Base64DecodeValue |
+-------------------+
| Password |
+-------------------+
1 row in set (0.00 sec)
टेबल कॉलम पर उपयोग
1. टेबल बनाएं
mysql> CREATE TABLE Base64Demo (
-> ProductId VARCHAR(100)
-> );
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO Base64Demo VALUES('321Product'), ('Product456'), ('654Product');
2. सभी एन्कोड करें
mysql> SELECT TO_BASE64(ProductId) AS Base64Encode FROM Base64Demo;
+------------------+
| Base64Encode |
+------------------+
| MzIxUHJvZHVjdA== |
| UHJvZHVjdDQ1Ng== |
| NjU0UHJvZHVjdA== |
+------------------+
3 rows in set (0.00 sec)
3. क्रॉस-चेक: पहले मान को डिकोड करें
mysql> SELECT FROM_BASE64('MzIxUHJvZHVjdA==') AS DecodeValue;
+-------------+
| DecodeValue |
+-------------+
| 321Product |
+-------------+
1 row in set (0.00 sec)
महत्वपूर्ण विशेषताएं
- उलटा:
FROM_BASE64(TO_BASE64(x)) = x(बाइनरी-सेफ) - NULL हैंडलिंग: इनपुट NULL होने पर NULL लौटाता है
- कैरेक्टर सेट: कनेक्शन कैरेक्टर सेट के अनुसार बाइट्स एन्कोड करता है
- आकार: आउटपुट ~33% बड़ा होता है (3 बाइट्स → 4 कैरेक्टर)
उपयोग केस
- बाइनरी डेटा को टेक्स्ट में स्टोर करना (JSON, XML, URL)
- सरल ऑबफस्केशन (एन्क्रिप्शन नहीं!)
- डेटा ट्रांसफर (ईमेल अटैचमेंट, API)
- कैश कुंजी जनरेशन
सुरक्षा नोट
Base64 एन्क्रिप्शन नहीं है।** यह केवल एन्कोडिंग है - कोई कुंजी नहीं, कोई सुरक्षा नहीं। संवेदनशील डेटा के लिए AES_ENCRYPT() / AES_DECRYPT() या एप्लिकेशन-लेयर एन्क्रिप्शन उपयोग करें।