近日帮朋友用DELPHI做一个AES加解密过程的程序,需要显示过程中的缓冲数据。一开始考虑的是将byte数组转换为字符串,搜遍网路也未发现适合方法。后来在查看TSTREAM类时有一个TSTRINGSTREAM,可以直接从缓冲中读取数据,然后转换为字符串。
代码如下:
- var
- TempIn, TempOut: TAESBuffer;
- StrStream: TStringStream;
- s:string;
- begin
- //创建StrStream对象
- StrStream := TStringStream.Create(s);
- try
- //将指针恢复到字符串头
- StrStream.Seek(0, soFromBeginning);
- //从缓冲读取数据
- StrStream.Write (TempOut, SizeOf(TempOut));
- finally
- StrStream.Free;
- end;
- end;