<?php
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;
}
function encodeBase64($data){
$data = base64_encode($data);
return $data;
}
function decodeBase64($data){
$data = base64_decode($data);
return $data;
}
function mac256($ent,$key){
$res = hash_hmac('sha256', $ent, $key, true);//(PHP 5 >= 5.1.2)
return $res;
}
function createMerchantSignature($key){
// Se decodifica la clave Base64
$key = decodeBase64($key);
// Se genera el parámetro Ds_MerchantParameters
$ent = "";
// Se diversifica la clave con el Número de Pedido
$key = encrypt_3DES('1442772645', $key);
// MAC256 del parámetro Ds_MerchantParameters
$res = mac256($ent, $key);
// Se codifican los datos Base64
return encodeBase64($res);
}
$key = createMerchantSignature("Mk9m98IfEblmPfrpsawt7BmxObt98Jev");
echo $key
?>
preferences:
46.67 ms | 402 KiB | 5 Q