我通過Internet將數據發送爲TmemoryStream,現在我想使用簡單的算法對其進行加密。替換TMemoryStream中的字節
所以我想在tmemorystream中替換每個和每個字節來引用它。
看起來像
例如(以字節爲單位一個MemoryStream):
[123] [233] [122] [001] [123] [233] [122] [001] [123] [233] [122] [001]
例如(以ASCII密碼)
HI = [72] [73]
encription
[123 + 72] [233 + 73] [122 + 72] [001 + 73] [72 123+] [233 + 73] [122 + 72] [001 + 73] [123 + 72] [233 + 73] [122 + 72] [001 + 73]
終值 [195] [51] [194] [74] ...
我如何在使用Delphi的單個解析中做這種替換
和
如何在單個解析中替換memeorystream中的字節以實現此目的。
=======================更新====================== ========================
var pq: integer ;
....
LLine := // from a stream
//start blocjk
//my encription
p := LLine.Memory;
for i := 0 to LLine.Size-1 do
begin
pp := p^ ;
pq := pp + 72 ;
if pq > 255 then
begin
pq := pq - 255 ;
end;
P^ := Byte(pq) ;
inc(p);
end;
// my encription end
//my decription
LLine.Position := 0;
p := LLine.Memory;
for i := 0 to LLine.Size-1 do
begin
pp := p^ ;
pq := pp - 72 ;
if pq < 0 then
begin
pq := pq + 255 ;
end;
P^ := Byte(pq) ;
inc(p);
end;
//end
//end blocjk
Image1.Picture.Graphic.LoadFromStream(LLine);
你會如何分解[233 + 73] - > [51]回到[233 + 73]? – 2012-01-17 11:47:39
@AlexK。你可以從51減去73(73是charowrd中的char)否則它將減少22的255 – VibeeshanRC 2012-01-17 11:55:26
我不喜歡你的算法。更好地使用XOR加密,甚至更好地使用像RC4這樣的實際流加密,這很容易實現。 – kobik 2012-01-17 15:31:42