Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Novás Ver Mensaje
Hola a todos, mi problemilla es el siguiente:

Tengo declaradas estas dos constantes:

Código Delphi [-]
const
  clave_xor='12345678B12345678***';
  pal_sec_ofuscada='78;52;72;72;41;76;46;12;74;0B;59;70;85;AA;77;00;0F;1A;BB;69';

Ahora debo convertir estas dos palabras a bytes para luego efectuar una operación xor a nivel de bytes y, una vez hecho esto debo regresar el resultado
a un string.

El problemas es que no se como, alguien podría ayudarme. Muchísimas gracias
Tengo una pregunta, como es que quieres hacer la operación, mezclando las dos constantes, cada constante por separado, no entiendo que quieres hacer.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 27-11-2007
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
Realmente lo que necesito es traducir esta función de php a delphi
Código PHP:
<?
$pal_sec_ofuscada 
"5D;7F;0A;27;09;0D;25;5D;04;01;0B;00;06;01;00;70;06;1C;19;19";
$clave_xor "eH2dJ9gkB82915026***";

$cad1_0 "0";
$cad2_0 "00";
$cad3_0 "000";
$cad4_0 "0000";
$cad5_0 "00000";
$cad6_0 "000000";
$cad7_0 "0000000";
$cad8_0 "00000000";
$pal_sec "";

$valor rand (099);
$id_trans date("mdHis").$valor;
$localizador="1234567890";
$numtarjeta=$_POST["bbva_number"];
$fechacad="20" $_POST["bbva_expires"];
$importe $_POST["card_total"];
$trozos explode (";"$pal_sec_ofuscada);
$tope count($trozos);

for (
$i=0$i<$tope $i++)
{
    
$res "";
    
$pal_sec_ofus_bytes[$i] = decbin(hexdec($trozos[$i]));    
    if (
strlen($pal_sec_ofus_bytes[$i]) == 7){ $pal_sec_ofus_bytes[$i] = $cad1_0.$pal_sec_ofus_bytes[$i]; }    
    if (
strlen($pal_sec_ofus_bytes[$i]) == 6){ $pal_sec_ofus_bytes[$i] = $cad2_0.$pal_sec_ofus_bytes[$i]; }
    if (
strlen($pal_sec_ofus_bytes[$i]) == 5){ $pal_sec_ofus_bytes[$i] = $cad3_0.$pal_sec_ofus_bytes[$i]; }
    if (
strlen($pal_sec_ofus_bytes[$i]) == 4){ $pal_sec_ofus_bytes[$i] = $cad4_0.$pal_sec_ofus_bytes[$i]; }
    if (
strlen($pal_sec_ofus_bytes[$i]) == 3){ $pal_sec_ofus_bytes[$i] = $cad5_0.$pal_sec_ofus_bytes[$i]; }
    if (
strlen($pal_sec_ofus_bytes[$i]) == 2){ $pal_sec_ofus_bytes[$i] = $cad6_0.$pal_sec_ofus_bytes[$i]; }
    if (
strlen($pal_sec_ofus_bytes[$i]) == 1){ $pal_sec_ofus_bytes[$i] = $cad7_0.$pal_sec_ofus_bytes[$i]; }
    
$pal_sec_xor_bytes[$i] = decbin(ord($clave_xor[$i]));
    if (
strlen($pal_sec_xor_bytes[$i]) == 7){ $pal_sec_xor_bytes[$i] = $cad1_0.$pal_sec_xor_bytes[$i]; }
    if (
strlen($pal_sec_xor_bytes[$i]) == 6){ $pal_sec_xor_bytes[$i] = $cad2_0.$pal_sec_xor_bytes[$i]; }
    if (
strlen($pal_sec_xor_bytes[$i]) == 5){ $pal_sec_xor_bytes[$i] = $cad3_0.$pal_sec_xor_bytes[$i]; }
    if (
strlen($pal_sec_xor_bytes[$i]) == 4){ $pal_sec_xor_bytes[$i] = $cad4_0.$pal_sec_xor_bytes[$i]; }
    if (
strlen($pal_sec_xor_bytes[$i]) == 3){ $pal_sec_xor_bytes[$i] = $cad5_0.$pal_sec_xor_bytes[$i]; }
    if (
strlen($pal_sec_xor_bytes[$i]) == 2){ $pal_sec_xor_bytes[$i] = $cad6_0.$pal_sec_xor_bytes[$i]; }
    if (
strlen($pal_sec_xor_bytes[$i]) == 1){ $pal_sec_xor_bytes[$i] = $cad7_0.$pal_sec_xor_bytes[$i]; }
    for (
$j=0$j<8$j++)
    {
        (string)
$res .= (int)$pal_sec_ofus_bytes[$i][$j] ^ (int)$pal_sec_xor_bytes[$i][$j];
    }
    
$xor[$i] = $res;
    
$pal_sec .= chr(bindec($xor[$i]));
}
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #3  
Antiguo 27-11-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Ese parece el codigo fuente que suministra el banco ahi indicado, cuando se contrata con ellos su tpv virtual, sino recuerdo mal (hace varios años que implemente ese sistema) todos los mails, documentacion y codigo recibido del banco era confidencial. No se si han cambiado de politica y ese codigo se puede publicar actualmente, en todo caso sugiero que te asegures si puedes publicarlo y si no es asi, yo borraria el codigo fuente que muestras en ese mensaje.

Saludos
Responder Con Cita
  #4  
Antiguo 27-11-2007
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
Un saludo a todos, ante la respuesta de nuestro compañero Mick, he llamado con urgencia al servicio de atención al cliente de dicho banco y me han dicho que no hay ningún problema por publicar ese código ya que lo importante son la palabra secreta, el código_xor y la firma sacada a partir del algoritmo sha1 (todo ello único) además de otro sinfín de procedimientos en materia de seguridad que no voy a detallar aquí.
Por lo tanto puedo mantener el código.

De todas formas gracias Mick porque a mi ni se me había ocurrido esa posibilidad.

PD.
Agradezco cualquier tipo de ayuda en la traducción de dicho código. Nunca he trabajado en php (se queda como promesa de año nuevo) y no dispongo del tiempo necesario para ponerme al día y lograr traducirlo.
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar TMemorystream a string modulay OOP 4 29-09-2007 22:23:48
Pasar string a char Sayuri Varios 3 09-08-2005 16:35:29
Pasar de string a float joanajj Varios 3 04-11-2004 20:29:30
de BYTE a STRING emeceuy Varios 3 20-08-2004 16:29:32
ADO: Byte nulo (byte #0) en un string Pandre Conexión con bases de datos 0 02-04-2004 20:18:37


La franja horaria es GMT +2. Ahora son las 00:55:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi