gpt4 book ai didi

delphi - 下载加密的(XOR)内容

转载 作者:行者123 更新时间:2023-12-03 18:57:19 28 4
gpt4 key购买 nike

我有一个使用XOR加密的在线TXT文件。我正在使用Indy HTTP读取此文件。当我这样做时:

Buff.Text:= HTTP.Get('http://www.blabla.com/xor.txt');


Buff中的内容已损坏,我无法正确解密。如何解决呢?在下面,我将粘贴用于对txt文件进行XOR的函数:

function TForm1.XorStr(Input: AnsiString; Seed: integer): AnsiString;
var
i : integer;
Output : AnsiString;
begin
Output := '';
for i := 1 to Length(Input) do
Output := Output + AnsiChar(Ord(Input[i]) XOR (Seed));
Result:= Output;
end;


希望有人可以帮助我。感谢你们!

最佳答案

您正在使用TIdHTTP.Get()的重载版本下载数据,该版本返回UnicodeString。该版本将根据服务器Content-Type响应头中指定(或缺少)的字符集将原始数据解码为Unicode。对于您尝试做的事情,这会破坏您的数据。您需要使用TIdHTTP.Get()的另一个重载版本,而不是用原始数据填充TStream,然后您可以对其进行解码,例如:

var
Strm: TMemoryStream;
Output: AnsiString;
begin
...
Strm := TMemoryStream.Create;
try
HTTP.Get('http://www.blabla.com/xor.txt', Strm);
Output := XorStr(Strm.Memory, Strm.Size, Seed);
finally
Strm.Free;
end;
...
end;

function TForm1.XorStr(Input: Pointer; InputSize: NativeInt; Seed: Integer): AnsiString;
var
i : integer;
begin
SetString(Result, PAnsiChar(Input), InputSize);
for i := 1 to Length(Result) do
Result[i] := AnsiChar(Ord(Result[i]) XOR Seed);
end;

关于delphi - 下载加密的(XOR)内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13182352/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com