muchisimas gracias me ayudo muchisimo todas tus recomendaciones y codigos.
este es el resultado de las modificaciones en el codigo php
Código PHP:
$datos = "PROFIT1001 ";
function rand_string($data) {
$key_encript=" ";
$length = strlen($data);
for( $i = 0; $i < $length; $i++ ) {
$key_encript = $key_encript.fun(substr($data, $i, 1));
}
Return (Substr($key_encript, 1, strlen($key_encript)-1));
}
Function fun ($car){
Return (chr((((ord($car)+17)*11)%255)));
}
partiendo de que la clave guardada en el sql server es
//E$Àá[ØÍÍØ
cuando ejecuto el codigo php me imprime este resultado
/E$��[����
luego le quite la funcion chr para ver que valores me muestra y dio como resultado esto
47 69 36 192 225 91 216 205 205 216 29 29 29
47 = /
69 = E
36 = $
192 = └
225 = ß
91 = [
216 = Ï
205 = ═
29 =
29 =
29 =
por lo que me coinciden con lo guardado en la base de datos siempre y cuando sea menor a 128
estuve investigando y corri un codigo para ver los caracteres ascii y no logro verlos cuando el numero es mayor a 128 desde ese en adelante los veo de la siguiente forma � (solo para tener una referencia de que valores serian los correctos)
Ø = 155
À = 183
á = 160
Í = 214
eso tiene que ver con el numero de bytes?