将3DES代码php转换为ASP

将3DES代码php转换为ASP,php,asp-classic,3des,Php,Asp Classic,3des,我有这个php代码,我需要把它翻译成asp经典。这是一个用于新卡支付系统的代码,我不知道如何从这里开始。 有人能帮我吗?我在javascript中找到了一个使用CryptoJS的解决方案。您可以将其用于经典asp代码: function encrypt_3DES($message, $key){ // Se establece un IV por defecto $bytes = array(0,0,0,0,0,0,0,0); //byte [] IV = {0, 0, 0, 0, 0,

我有这个php代码,我需要把它翻译成asp经典。这是一个用于新卡支付系统的代码,我不知道如何从这里开始。
有人能帮我吗?

我在javascript中找到了一个使用CryptoJS的解决方案。您可以将其用于经典asp代码:

function encrypt_3DES($message, $key){
  // Se establece un IV por defecto
  $bytes = array(0,0,0,0,0,0,0,0); //byte [] IV = {0, 0, 0, 0, 0, 0, 0, 0}
  $iv = implode(array_map("chr", $bytes)); //PHP 4 >= 4.0.2

  // Se cifra
  $ciphertext = mcrypt_encrypt(MCRYPT_3DES, $key, $message, MCRYPT_MODE_CBC, $iv); //PHP 4 >= 4.0.2
  return $ciphertext;
}
加密=n6lp0I1w5FxLQHskKMn4sw==


与Redsys PHP平台的结果相同。

为了能够转换,我们还需要定义mcrypt_加密函数,但是,您要求在Classic ASP中重新创建Mcrypt库,我不建议您这样做,而是要找到适合Classic ASP的加密函数。当encript MerchantCode时,此代码是新Redsys平台的一部分。到目前为止,我只检测到一个库需要解决:因此我怀疑PHP代码有另一个条件,我尝试了crypto js库,它似乎可以工作。现在我需要做一些测试,看看加密是否正确
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/pad-nopadding.js"></script>

<script>

function padString(source) {
    var paddingChar = '\0';
    var size = 8;
    var x = source.length % size;
    var padLength = size - x;

    for (var i = 0; i < padLength; i++) source += paddingChar;

    return source;
}

var key = CryptoJS.enc.Base64.parse('Mk9m98IfEblmPfrpsawt7BmxObt98Jev');
var iv  = CryptoJS.enc.Hex.parse('0000000000000000');
var message = "1447841550";
var padMsg = padString(message);

var encrypted = CryptoJS.TripleDES.encrypt(padMsg, key, { iv: iv, padding: CryptoJS.pad.NoPadding, mode: CryptoJS.mode.CBC});

alert(encrypted);

</script>