![]() |
Kodierung ändern
Hallo,
hab jetzt überall gesucht -.- un zwar ich lade von einem ftp datein runter, früher waren die in ansi gespeichert un konnte mit hilfe diesen code
Delphi-Quellcode:
das passwort überprüfen
for x := 1 to length(pw) do
begin pw[x] := Chr( BYTE(Ord(pw[x]) + (3 xor (X-1)) * ((X-1) mod 15)) ); if Ord(pw[x]) >= 255 then begin pw[x] := Chr( Ord(pw[x]) - 256 ); end; end; if 'Key='+pw = pass then da sich jetzt die zeichenkodierung der datein in uft8 geändert hat funktioniert das nicht mehr deshalb frag ich ob es eine möglichkeit gibt die heruntergeladene datei umspeichern kann, vorraussetzung ist das man es nicht sehen soll. geht das irgendwie oder kann man den code ändern in utf8 ? |
Re: Kodierung ändern
Man mag es kaum glauben, aber es gibt gleich in der System-Unit so Funktionen ala Utf8ToAnsi
(also diese Funktionen sind immer verfügbar, da automatisch eingebunden). |
Re: Kodierung ändern
richtig die habe ich auch ma da eingebaut trozdem stimmt es nicht überein :(
|
Re: Kodierung ändern
Hmmm, dann wird wohl noch was anderes geändert sein, außer der Kodierung? :gruebel:
Oder nutzt du zufällig auch noch Delphi 2009+ ? PS: wenn es dich wirklich um ANSI handelt, dann ist sowas wie if Ord(pw[x]) >= 255 then eigentlich sinnlos, da ein AnsiChar eh nur Werte mit maximal #255 aufnehmen kann. |
Re: Kodierung ändern
nein leider nutze ich nur delphi 2005
alsowird es keine möglichkeit geben ? |
Re: Kodierung ändern
- hat sich was an der Passwortberechnung verändert?
- haben sich ebentuell "falsche" Zeichen in die Dateien geschmuggelt - ...
Delphi-Quellcode:
hab den Code mal etwas gekürzt
var pw: AnsiString;
pw := Utf8ToAnsi(pw); for x := 0 to Length(pw) - 1 do pw[x+1] := AnsiChar(Byte(pw[x+1]) + (x xor $03) * (x mod 15)); if 'Key=' + pw = pass then und ich glaub mit dem etwas verschobenen x fällt es besser auf, was genau berechnet wird. |
Re: Kodierung ändern
die berechnung ist gleich geblieben
falsche zeichen auch nicht auser die utf8 codierung macht aus den ansi was anderes un wenn man dann wieder von utf8 in ansi geht werden die nochmal geändert danke für die verkleinerung :) die funktioniert auch nur das löst mein problem als nicht :( |
Re: Kodierung ändern
Also, wenn es wirklich nur UTF-8-kodiert ist, dann sollte es nach der Dekodierung der selbe alte ANSI-Text rauskommen.
pass ist auch ein String/AnsiString oder ist das ebenfalls UTF-8?
Delphi-Quellcode:
if AnsiToUtf8('Key=' + pw) = pass then
// oder if 'Key=' + pw = Utf8ToAnsi(pass) then |
Re: Kodierung ändern
alles war ansi.
ok ich danke dir erstmal für deine hilfe, werden es aber nun etwas umbauen trozdem THX |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz