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

जावा का उपयोग करके AES_ENCRYPT और AES_DECRYPT

एक toString() बाइट-सरणी पर बाइट सरणी की सामग्री वापस नहीं आती है, लेकिन [[email protected] बाइट सरणी के पहचान हैशकोड के बाद। अपनी प्रविष्टि में आपने key . की सामग्री का उपयोग नहीं किया कुंजी के रूप में, लेकिन toString -मूल्य। आपको एक PreparedStatement का उपयोग करने की आवश्यकता है एक पैरामीट्रिज्ड क्वेरी के साथ, और setBytes . का उपयोग करके मान सेट करें :

psmt = con.prepareStatement("insert into mm values (?, AES_ENCRYPT(?, ?), AES_ENCRYPT(?, ?))");
psmt.setInt(1, id);
psmt.setString(2, name);
psmt.setBytes(3, key);
psmt.setstring(4, sal);
psmt.setBytes(5, key);

और अपनी चुनिंदा क्वेरी के लिए भी ऐसा ही करें।

आपको अपनी क्वेरी में मूल्यों को कभी भी संयोजित नहीं करना चाहिए। यह आपको SQL इंजेक्शन के प्रति संवेदनशील बना देगा।



  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. Laravel 4 में डेटाबेस परिणामों के साथ ड्रॉपडाउन मेनू को पॉप्युलेट करना

  3. mysql मैच के खिलाफ ~ उदाहरण

  4. क्या दिनांक MySQL में एक कीवर्ड है?

  5. डुप्लिकेट पंक्तियों को mysql में अद्वितीय मानों में कैसे बदलें?