亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 Javascript 加密邏輯轉換為 PHP(可能是 AES 方法)

將 Javascript 加密邏輯轉換為 PHP(可能是 AES 方法)

PHP
蠱毒傳說 2023-10-15 15:00:13
我在將以下 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/謝謝
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

以下代碼是簡單的 AES CBC 加密/解密,沒有任何適當的異常處理,僅用于教育目的。


所有學分均歸于@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;

?>


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 107 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號