Javascript şifreleme mantığını PHP'ye dönüştürme (Muhtemelen AES Yöntemi)

Aug 17 2020

Aşağıdaki javascript şifreleme mantığını PHP'ye dönüştürmekle ilgili sorun yaşıyorum, bu javascript kitaplığı internette bulunamıyor, bu nedenle nereden başlayacağım konusunda belge veya ipucu yok.

Şifreleme AES yöntemini kullanıyor gibi görünüyor, ancak garip çünkü AES yalnızca giriş dizesini ve sırrı kabul ediyor, iv javascript'teki değişken s ile eşleşmedi (16 bit değil)

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/

Teşekkürler

Yanıtlar

1 MichaelFehr Aug 17 2020 at 13:47

Aşağıdaki kod, herhangi bir istisna işleme olmaksızın ve yalnızca eğitim amaçlı basit AES CBC şifreleme / şifre çözmedir .

Tüm krediler , algoritmayı ve modu, anahtarı ve iv'ü inceleyen @ Topaco'ya gider .

Statik anahtar & iv kullandığından lütfen bu kodu üretimde kullanmayın!

sonuç:

* * * 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

kod:

<?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;
?>