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

PHP Openssl एक एईएस माइस्क्ल एन्क्रिप्शन को डिक्रिप्ट करता है

openssl_encrypt() और openssl_decrypt() साइलेंट कुंजी को अधिकतम 16 बाइट लंबाई (कम से कम aes-128-ecb के लिए) तक काट देता है

<?php
    $key1 = hex2bin(openssl_digest('mysecretphrase', 'sha512'));
    $key2 = substr($key1, 0, 16);
    $key3 = substr($key1, 0, 15);
    $method = 'aes-128-ecb';
    $in = 'testvalue';
    $data1 = base64_decode(openssl_encrypt($in, $method, $key1));
    $data2 = base64_decode(openssl_encrypt($in, $method, $key2));
    $data3 = base64_decode(openssl_encrypt($in, $method, $key3));
    var_dump(
        array(
            'key1'=>bin2hex($key1),
            'key2'=>bin2hex($key2),
            'key3'=>bin2hex($key3),
            'data1'=>bin2hex($data1),
            'data2'=>bin2hex($data2),
            'data3'=>bin2hex($data3),
            'data1==data2'=>($data1===$data2),
            'data1==data3'=>($data1===$data3)
        )
    );
?>

परिणाम:

   array(8) {
        ["key1"]=>string(128) "5fe76dfd5b75cf7cf68fae85d26fcc9b7951806ad6daaa71d843c6ec0e0ec9233a828ad9b60986a43d734983c8a0a50d3a0a49ec5ac196cfcc136aa16e0c5f89"
        ["key2"]=>string(32) "5fe76dfd5b75cf7cf68fae85d26fcc9b"
        ["key3"]=>string(30) "5fe76dfd5b75cf7cf68fae85d26fcc"
        ["data1"]=>string(32) "eb69e89312c1f7b9522d0e66346f2029"
        ["data2"]=>string(32) "eb69e89312c1f7b9522d0e66346f2029"
        ["data3"]=>string(32) "664f5a28d241f959beac350f2314b079"
        ["data1==data2"]=>bool(true)
        ["data1==data3"]=>bool(false)
    }

Mysql में AES_ENCRYPT() . द्वारा पूर्ण लंबाई वाली कुंजी का उपयोग किया जाता है और AES_DECRYPT()

SELECT 
    HEX(AES_ENCRYPT('testvalue',UNHEX(SHA2('mysecretphrase',512)))) AS l_full,
    HEX(AES_ENCRYPT('testvalue',SUBSTR(UNHEX(SHA2('mysecretphrase',512)),1,16))) AS l_16,
    HEX(AES_ENCRYPT('testvalue',SUBSTR(UNHEX(SHA2('mysecretphrase',512)),1,15))) AS l_15;

परिणाम:

l_full                           | l_16                             | l_15
---------------------------------|----------------------------------|----------------------------------------
A88DD1EFB377FD31A0EFA55EA29BA8C6 | EB69E89312C1F7B9522D0E66346F2029 | 664F5A28D241F959BEAC350F2314B079


  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 त्रुटि 1022

  2. विंडोज़ और लिनक्स में जीएमटी का उपयोग करने के लिए MySQL कैसे सेट करें

  3. डेटाबेस में छवियों को कब स्टोर करें (mySQL) और कब नहीं? (डेटाबेस में आइटम को छवि से जोड़ना)

  4. जब मैं एकाधिक इनर जॉइन के साथ एसयूएम और COUNT का उपयोग करता हूं तो MySQL मैं डुप्लिकेट पंक्तियों को कैसे शामिल नहीं करूं?

  5. कैसे पता चलेगा कि DELETE क्वेरी वास्तव में PDO का उपयोग करके एक पंक्ति को हटा देती है