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
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