Ver Mensaje Individual
  #1  
Antiguo 10-01-2012
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Reputación: 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