Page 1 of 1

encrypt/decrypt in Harbour and php

Posted: Fri Dec 20, 2019 6:21 pm
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

Re: encrypt/decrypt in Harbour and php

Posted: Sat Dec 21, 2019 12:56 pm
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.

Re: encrypt/decrypt in Harbour and php

Posted: Sat Dec 21, 2019 5:11 pm
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

Re: encrypt/decrypt in Harbour and php

Posted: Sat Dec 21, 2019 5:28 pm
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);
 

Re: encrypt/decrypt in Harbour and php

Posted: Sat Dec 21, 2019 7:57 pm
by MOISES
Muchas gracias.

¿No existe un método de encriptacion más fuerte?

Re: encrypt/decrypt in Harbour and php

Posted: Sat Dec 21, 2019 9:48 pm
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

Re: encrypt/decrypt in Harbour and php

Posted: Sun Dec 22, 2019 9:47 am
by MOISES
Thank you Cristóbal.

Do you refer to this?

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

Re: encrypt/decrypt in Harbour and php

Posted: Sun Dec 22, 2019 10:01 am
by cnavarro
Yes, but in version 3.2 there are also
I use this functions with cMimeEnc and cMimeDec functions