encrypt/decrypt in Harbour and php

Post Reply
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

encrypt/decrypt in Harbour and php

Post by MOISES »

Hi,

Are there a set of functions that, for example, I encrypt the string in the php web page, and I read and decrypt in Habour -prg code?

Thank you
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: encrypt/decrypt in Harbour and php

Post by leandro »

Pues no es exactamente encriptar... pero para ocultar un poco el contenido puedes usar la codificación en base64.

Encode y decode en xharbour

Code: Select all

cBas64 := hb_base64encode(::user+":"+::pass,len(::user+":"+::pass)) 
cString := hb_base64decode(::respuesta["qrdata"])
 
en PHP

Code: Select all

$str = 'This is an encoded string';
echo base64_encode($str);

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>
 
En este momento me encuentro investigando y avanzando de a poco sobre el tema de encriptar con los comandos openssl apenas tenga resultados comento.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: encrypt/decrypt in Harbour and php

Post by cnavarro »

leandro wrote: En este momento me encuentro investigando y avanzando de a poco sobre el tema de encriptar con los comandos openssl apenas tenga resultados comento.
Leandro, What openssl functions are you using?

Moises, use functions hb_base64Encode and hb_base64Decode
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: encrypt/decrypt in Harbour and php

Post by leandro »

Cristobal como siempre gracias por responder, en este momento me encuentro leyendo sobre el tema de openssl, es nuevo para mi. Pero a lo que quiero llegar, es a traducir este codigo de php a xharbour "si se puede".

Code: Select all

//Configuración del algoritmo de encriptación
//Debes cambiar esta cadena, debe ser larga y unica
//nadie mas debe conocerla
$clave  = 'Una cadena, muy, muy larga para mejorar la encriptacion';
//Metodo de encriptación
$method = 'aes-256-cbc';
// Puedes generar una diferente usando la funcion $getIV()
$iv = base64_decode("C9fBxl1EWtYTL1/M8jfstw==");
 /*
 Encripta el contenido de la variable, enviada como parámetro.
  */
 $encriptar = function ($valor) use ($method, $clave, $iv) {
     return openssl_encrypt ($valor, $method, $clave, false, $iv);
 };
 /*
 Desencripta el texto recibido
 */
 $desencriptar = function ($valor) use ($method, $clave, $iv) {
     $encrypted_data = base64_decode($valor);
     return openssl_decrypt($valor, $method, $clave, false, $iv);
 };
 /*
 Genera un valor para IV
 */
 $getIV = function () use ($method) {
     return base64_encode(openssl_random_pseudo_bytes(openssl_cipher_iv_length($method)));
 };
 ?>
 
 
 <?php
 
/**
 * function to encrypt
 * @param string $data
 * @param string $key
 */
function encrypt($data,$key)
{
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted=openssl_encrypt($data, "aes-256-cbc", $key, 0, $iv);
    // return the encrypted string with $iv joined 
    return base64_encode($encrypted."::".$iv);
}
 
/**
 * function to decrypt
 * @param string $data
 * @param string $key
 */
function decrypt($data,$key)
{
    list($encrypted_data, $iv) = explode('::', base64_decode($data), 2);
    return openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
}
 
 
$key="1235@";
$string="la casa azul";
 
$encryptado=encrypt($string,$key);
echo $encryptado;
echo "<hr>";
echo decrypt($encryptado,$key);
 
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: encrypt/decrypt in Harbour and php

Post by MOISES »

Muchas gracias.

¿No existe un método de encriptacion más fuerte?
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: encrypt/decrypt in Harbour and php

Post by cnavarro »

MOISES wrote:Muchas gracias.

¿No existe un método de encriptacion más fuerte?
Look for the hb_Crypt and hb_Decrypt functions, and you can even support yourself for using these functions in the cMimeEnc and cMimeDec functions

Pd: in this forum, please use the English language. Thank you


Busca las funciones hb_Crypt y hb_Decrypt, e incluso puedes apoyarte para el uso de estas funciones en las funciones cMimeEnc y cMimeDec

Pd: en este forum, por favor, usad el idioma inglés. Gracias
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: encrypt/decrypt in Harbour and php

Post by MOISES »

Thank you Cristóbal.

Do you refer to this?

https://github.com/vszakats/hb/blob/mas ... /hbcrypt.c
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: encrypt/decrypt in Harbour and php

Post by cnavarro »

Yes, but in version 3.2 there are also
I use this functions with cMimeEnc and cMimeDec functions
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply