я использовал ASCII, а не Algo0
и длина исходной строки 38 символов
привожу кусок кода Delphi
//длина зашифрованной строки
ns_SizeTAll = 38;
//зашифрованная строка
ns_CodeStringTAll: array[0..ns_SizeTAll-1] of CHAR =
'g4?!^!#[(#>W!E!0!H+7P?^(*(,:=.!&$=L!,d';
//пароль
ns_PasswordTAll: array[0..31] of BYTE =(
117,182,112, 36, 55,164,193,163, 79,155, 27,119,100,138,173,227,
49,156,164,218, 51,193,179,216, 54, 77,203,251,136,126,245, 50
);
....
sdata:=ns_CodeStringTAll;
sPassword:='';
//собираем пароль в строку
for i_sh:=0 to 31 do
begin
sPassword:=sPassword+chr(ns_PasswordTAll[i_sh]);
end;
showmessage(sPassword);
showmessage(sdata);
nRet := GrdDeCode(nsat_AlgoASCII, @sPassword[1], @sdata[1], ns_SizeTAll);
//выводим раскодированную строку - это наш результат
showmessage(sdata);
...
в API 4 один результат
в API 5 - другой