जावास्क्रिप्ट एन्क्रिप्शन तर्क को PHP में परिवर्तित करें (संभवतः एईएस विधि)

Aug 17 2020

मैं निम्नलिखित जावास्क्रिप्ट एन्क्रिप्शन तर्क को PHP में परिवर्तित करने के लिए समस्या आ रहा है, यह जावास्क्रिप्ट पुस्तकालय इंटरनेट पर नहीं मिल सकता है इसलिए कोई प्रलेखन या सुराग नहीं है जहां शुरू करना है।

ऐसा लगता है कि एन्क्रिप्शन एईएस पद्धति का उपयोग कर रहा है, लेकिन यह अजीब है क्योंकि एईएस केवल इनपुट स्ट्रिंग और रहस्य को स्वीकार करता है, iv जावास्क्रिप्ट (16bit नहीं) पर चर एस से मेल नहीं खाता

function doCheckR() {
  var string= "10000395351475";
  console.log("this is plain processing of string :  "+string);
  var a = ManualJS.jun.Des.parse("79540e250fdb16afac03e19c46dbdeb3"),
    s = ManualJS.jun.Des.parse("eb2bb9425e81ffa942522e4414e95bd0"),
    result = ManualJS.MDX.goinstring(string, a, {
        ii: s
    });
    console.log("this is a :  "+a);
    console.log("this is s :  "+s);
    console.log("this is result :  "+result);
  result = result.rabbittext.toString(ManualJS.jun.Text21);
  console.log("final result for urlencoded :  "+encodeURIComponent(result));
}

https://jsfiddle.net/8swegkv6/3/

धन्यवाद

जवाब

1 MichaelFehr Aug 17 2020 at 13:47

निम्नलिखित कोड सरल एईएस सीबीसी एन- / डिक्रिप्शन बिना किसी उचित अपवाद हैंडलिंग और केवल शैक्षिक उद्देश्यों के लिए है।

सभी क्रेडिट @Topaco पर जाएं जिन्होंने एल्गोरिथ्म और मोड, कुंजी और iv की जांच की।

कृपया इस कोड को उत्पादन में उपयोग न करें क्योंकि यह स्थैतिक कुंजी और iv का उपयोग करता है!

परिणाम:

* * * encryption * * *
ciphertext:      lOv3As5iF/wk/1LYB+68gw==
result urlencod: lOv3As5iF%2Fwk%2F1LYB%2B68gw%3D%3D
result expected: lOv3As5iF%2Fwk%2F1LYB%2B68gw%3D%3D
* * * decryption * * *
decryptedtext: 10000395351475
string       : 10000395351475

कोड:

<?php
echo 'https://stackoverflow.com/questions/63447664/convert-javascript-encryption-logic-to-php-probably-aes-method' . PHP_EOL;
$string = "10000395351475"; $aKey = "79540e250fdb16afac03e19c46dbdeb3";
$sIv = "eb2bb9425e81ffa942522e4414e95bd0"; // encryption echo '* * * encryption * * *' . PHP_EOL; $ciphertext = openssl_encrypt($string, "aes-128-cbc", hex2bin($aKey), 0, hex2bin($sIv)); echo 'ciphertext: ' . $ciphertext . PHP_EOL;
$ciphertextUrlencoded = urlencode($ciphertext);
echo 'result urlencod: ' . $ciphertextUrlencoded . PHP_EOL; echo 'result expected: ' . 'lOv3As5iF%2Fwk%2F1LYB%2B68gw%3D%3D' . PHP_EOL; // decryption echo '* * * decryption * * *' . PHP_EOL; $decryptedtext = openssl_decrypt(urldecode($ciphertextUrlencoded), "aes-128-cbc", hex2bin($aKey), 0, hex2bin($sIv)); echo 'decryptedtext: ' . $decryptedtext . PHP_EOL;
echo 'string       : ' . $string . PHP_EOL;
?>