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 10-01-2012
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Poder: 18
ruedabeat2003 Va por buen camino
String a Cadena de Bytes a cadena Hexadecimal

Hola, estoy sufriendo con un requerimiento que se trata de lo siguiente:
- Tomar un Certificado(Llave Publica) y obtener el contenido.
- El contenido del certificado pasarlo a un arreglo de Bytes.
- El arreglo de Bytes convertirlo a una cadena Hexadecimal.

Mis funciones son las siguientes:
Código:
 // Pasar la cadena con el contenido del Certificado a un arreglo de Bytes.
function ArrOfByte(AStr: wideString): TByteArr;
var
   j: integer;
begin
   SetLength( Result, Length(AStr)) ;
   for j := 0 to Length(AStr) - 1 do
     Result[j] := ord(AStr[j + 1]) - 48;
end;
Código:
// Tomar cada elemento del arreglo de Bytes y convertirlo a Hex
function ByteToHex(InByte:byte):shortstring;
const Digits:array[0..15] of char='0123456789ABCDEF';
begin
 result:=digits[InByte shr 4]+digits[InByte and $0F];
end;
Código:
 //  Load a digital certificate.
       success := cert.LoadFromFile(edtArchivoCer.Text);
       if (success <> 1) then
         begin
           ShowMessage(cert.LastErrorText);
           Exit;
         end;

         cadenawide := cert.GetEncoded;  // Obtenemos el contenido del CER-PEM
         cadenabyte := ArrOfByte(cadenawide); //Contenido lo ponemos en un arreglo de Bytes
         cadenahex  := '';
         for i:= 0 to Length(cadenabyte) -1 do // Formo mi cadena en Hexadecimal
          begin
            cadenahex := cadenahex  + ByteToHex(cadenabyte[i]);
          end;

        MemoRecep.Clear;
        MemoRecep.Lines.Add(cadenawide);
        memoCertificado.Clear;
        memoCertificado.Lines.Add(cadenahex);
Es correcto mi proceso de tomar el contenido del Archivo CER, pasarlo a un arreglo de Bytes y despues a una cadena HEx???

De antemano gracias por la ayuda.
Responder Con Cita
  #2  
Antiguo 10-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola

Si no necesitas el arreglo de bytes para otra tarea, creo que podés ahorrar un paso:
Código Delphi [-]
...
type
  TArrayStr = array of ShortString;

function StrToHex(WStr: WideString): TArrayStr;
var
  j: integer;
begin
   SetLength(Result, Length(WStr));
   for j:= 0 to Length(WStr) - 1 do
     Result[j]:= IntToHex(Ord(WStr[j+1]) - Ord('0'), 2);
end;
...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 11-01-2012
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Poder: 18
ruedabeat2003 Va por buen camino
Gracias por el Tip, voy a probarlo.

Saludos desde México.
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
Descomponer cadena @String Alejo15x Varios 3 04-02-2010 03:23:21
Verificar cadena es Hexadecimal yapt Varios 4 19-11-2009 16:37:51
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena flystar Varios 1 02-07-2007 23:51:10
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
convertir cadena hexadecimal a imagen Barzaugc SQL 3 20-09-2006 16:06:44


La franja horaria es GMT +2. Ahora son las 17:19:38.


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