将 Javascript 加密逻辑转换为 PHP(可能是 AES 方法)

我在将以下 javascript 加密逻辑转换为 PHP 时遇到问题,在互联网上找不到此 javascript 库,因此没有文档或线索从哪里开始。


看起来加密是使用 AES 方法,但很奇怪,因为 AES 只接受输入字符串和密钥,iv与 javascript 上的变量s不匹配(不是 16 位)


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/


谢谢


蛊毒传说
浏览 59回答 1
1回答

Helenr

以下代码是简单的 AES CBC 加密/解密,没有任何适当的异常处理,仅用于教育目的。所有学分均归于@Topaco,他检查了算法和模式、密钥和 iv。请不要在生产中使用此代码,因为它使用静态密钥和 iv!结果:* * * encryption * * *ciphertext:&nbsp; &nbsp; &nbsp; lOv3As5iF/wk/1LYB+68gw==result urlencod: lOv3As5iF%2Fwk%2F1LYB%2B68gw%3D%3Dresult expected: lOv3As5iF%2Fwk%2F1LYB%2B68gw%3D%3D* * * decryption * * *decryptedtext: 10000395351475string&nbsp; &nbsp; &nbsp; &nbsp;: 10000395351475代码:<?phpecho 'https://stackoverflow.com/questions/63447664/convert-javascript-encryption-logic-to-php-probably-aes-method' . PHP_EOL;$string = "10000395351475";$aKey = "79540e250fdb16afac03e19c46dbdeb3";$sIv = "eb2bb9425e81ffa942522e4414e95bd0";// encryptionecho '* * * encryption * * *' . PHP_EOL;$ciphertext = openssl_encrypt($string, "aes-128-cbc", hex2bin($aKey), 0, hex2bin($sIv));echo 'ciphertext:&nbsp; &nbsp; &nbsp; ' . $ciphertext . PHP_EOL;$ciphertextUrlencoded = urlencode($ciphertext);echo 'result urlencod: ' . $ciphertextUrlencoded . PHP_EOL;echo 'result expected: ' . 'lOv3As5iF%2Fwk%2F1LYB%2B68gw%3D%3D' . PHP_EOL;// decryptionecho '* * * decryption * * *' . PHP_EOL;$decryptedtext = openssl_decrypt(urldecode($ciphertextUrlencoded), "aes-128-cbc", hex2bin($aKey), 0, hex2bin($sIv));echo 'decryptedtext: ' . $decryptedtext . PHP_EOL;echo 'string&nbsp; &nbsp; &nbsp; &nbsp;: ' . $string . PHP_EOL;?>
打开App,查看更多内容
随时随地看视频慕课网APP