Недавно я взял некоторый код из Delphi 2007 и обновил его до Delphi 2009. Это может иметь или не иметь значение.
Но когда я запускаю код на моем компьютере, расшифровка пароля не расшифровывается правильно,Вот код.
Seed := GenerateIntFromString('usercode');
// Check if a password already exists
if TableUser.FieldByName('PASSWORD').AsString <> '' then
begin
EncodedPassword := TableUser.FieldByName('PASSWORD').AsString;
DecodedPassword := EncryptDecrypt(EncodedPassword, Seed);
//etc.. And the function
function TLogonForm.EncryptDecrypt(Input: string; Seed: integer) : string;
var
i : integer;
Output : string;
begin
RANDSEED := Seed;
Output := '';
for i := 1 to Length(Input) do
Output := Output + Chr(Ord(Input[i]) XOR (RANDOM(254) + 1));
Result := Output;
end;
Так что, если мой код пользователя - TD, а мой пароль - «JOEJOE»
, зашифрованный пароль: «? Âp?
расшифрованныйpassowrd: JìEJùE
Он должен расшифровываться как JOEJOE, очевидно.Кикер, если я собираю код и отправляю exe другому пользователю, он прекрасно расшифровывается.Это заставляет меня поверить, что это не что-то не так с кодом, а какая-то аномалия с моим компьютером.Что бы это могло быть?
Вы можете игнорировать это, потому что это, вероятно, не связано.Я упоминаю об этом только потому, что это другой случай, когда что-то работает нормально на одном компьютере, но не на другом.
Но есть также один случай, когда при попытке установить фильтр
TableUser2.Filter := FilterString;
это работаетхорошо для меня, но другой пользователь получает ошибку.
TableUser2: Ошибка 3106: в выражении фильтра записи обнаружен неподдерживаемый оператор.
Даже если мы фильтруем по тому же имени, выполняющему тот же код,Может быть проблема с базой данных?