Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डेटाबेस में एईएस-256-सीबीसी के साथ एन्क्रिप्टेड स्ट्रिंग के लिए मुझे कितनी लंबाई निर्दिष्ट करनी होगी?

एईएस का ब्लॉक आकार 16 बाइट्स है, इसलिए आपको इसकी आवश्यकता होगी

  • आपके इनपुट का आकार, 16 के निकटतम गुणज तक पूर्णांकित
  • साथ ही, यदि इनपुट पहले से ही 16 का गुणज है, तो PKCS#5 पैडिंग के लिए एक ब्लॉक आकार
  • चतुर्थ के लिए प्लस 16 बाइट्स

ध्यान दें कि यह आवश्यक रूप से अन्य सिफर मोड पर लागू नहीं होता है।

तो इनपुट के 20 बाइट्स के लिए आपको कुल 48 बाइट्स की आवश्यकता होगी। हालांकि , आप परिणाम को बेस 64 एन्कोडिंग भी कर रहे हैं, जिसके लिए कम से कम 33% अधिक स्थान की आवश्यकता होती है (यानी यदि आप अंतरिक्ष की परवाह करते हैं तो आपको कच्चे बाइट्स को संग्रहीत करना चाहिए)।

आपको एन्कोडिंग से पहले हमेशा संयोजित होना चाहिए, अन्यथा आप अक्सर कई पैडिंग बाइट अनुक्रमों के साथ स्थान बर्बाद कर देते हैं। यदि आपका इनपुट 20 बाइट लंबा है, तो 32 बाइट सिफरटेक्स्ट को एन्कोडिंग करने से 44 बाइट्स उत्पन्न होते हैं, और IV एन्कोडिंग से 24 बाइट्स (दोनों को पैडिंग की आवश्यकता होती है) का उत्पादन होता है। एन्कोडिंग से पहले संयोजित करने से केवल 64 बाइट्स बनते हैं।

एन्कोडिंग से पहले संयोजित करने के लिए भी सीमांकक की आवश्यकता नहीं होती है, क्योंकि IV की लंबाई ज्ञात है।

1 AEAD सिफर, जैसे GCM, आमतौर पर CBC की तुलना में बेहतर होते हैं, लेकिन स्पष्ट रूप से प्रमाणीकरण हैश को संग्रहीत करने के लिए अधिक स्थान की आवश्यकता होती है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यदि दिनांक सही नहीं है तो mysql एक खाली तिथि सम्मिलित करता है

  2. MySql सेलेक्ट एएस - सभी फील्ड नामों को जोड़ें

  3. एक कॉलम में विभिन्न वर्णों की सभी घटनाओं की गणना करें

  4. MySQL में परिणाम रैंकिंग करते समय मैं संबंधों को कैसे संभाल सकता हूं?

  5. बाइनरी डेटा के साथ SQL क्वेरी (PHP और MySQL)