2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 7732|回复: 33
打印 上一主题 下一主题

跨平台 通用的 数据加密解密或编码解码的 设计思路

[复制链接]

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
81989
跳转到指定楼层
#
发表于 2017-10-21 10:04:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
京东购书支持本站
delphi 的 加密解密都是针对 Byte 来的。
具体表现是 TBytes 和 TStream。
字符串,那是最终封装,方便使用而已。
delphi 内置的封装,都是 UTF8 编码的。
例如 Base64 UrlEncode 这些 都是 默认 UTF8 。

所以,自己写的 加密解密 编码解码。
也应如下设计。

注意 不要用 “复制代码” 这个按钮。

游客,如果您要查看本帖隐藏内容请回复


当然 UTF8 换成 ANSI 或 Unicode 等 其他编码也是很容易的。

下面是按 TStream 设计。
游客,如果您要查看本帖隐藏内容请回复


TBytes 和 TStream 是可以互相转换的
  AStream := TBytesStream.Create(ABytes) //TBytes 转为 TStream
下面是 反过来 TStream 转为 TBytes;
  SetLength(ABytes, AStream.Size - AStream.Position);
  AStream.Read(ABytes, AStream.Size - AStream.Position);
也可以通过下面的代码转换就是麻烦些
[mw_shl_code=delphi,true]
  ABytesStream := TBytesStream.Create(nil);
  try
    ABytesStream.CopyFrom(AStream, 0);
    ABytes := ABytesStream.Bytes;
    SetLength(ABytes, ABytesStream.Size);
  finally
    FreeAndNil(ABytesStream);
  end;
[/mw_shl_code]

上述 所有代码中的  UTF8 换成  ANSI ,立即就能支持 D7 版本编码或加密结果了。


如果你不知道结果是什么编码的,可以先用 内存流 代替字符串流(TMemoryStream 代替 TStringStream)。
先将结果保存到内存中。
然后你再去分析这个结果是什么编码的。
当然文件流(TFileStream)也可以,这样就去分析这个文件是什么编码的。

例如
游客,如果您要查看本帖隐藏内容请回复



如果数据中包含了 BOM 其实就非常好办了
  AStringList.LoadFromStream(AStream);
就可以得到字符串了。
但是这种情况,很少见。
(C)(P)Flying Wang
回复

使用道具 举报

0

主题

7

帖子

11

积分

新手上路

Rank: 1

积分
11
33#
发表于 2020-4-20 08:09:37 | 只看该作者
京东数码购物支持本站
下谢谢 数据加密
回复 支持 反对

使用道具 举报

0

主题

7

帖子

37

积分

新手上路

Rank: 1

积分
37
31#
发表于 2020-1-9 08:16:10 | 只看该作者
京东数码购物支持本站
学习了,谢谢!
回复 支持 反对

使用道具 举报

0

主题

30

帖子

941

积分

高级会员

Rank: 4

积分
941
30#
发表于 2019-12-29 14:47:51 | 只看该作者
京东数码购物支持本站
好方法,受教了,学习了
回复 支持 反对

使用道具 举报

0

主题

29

帖子

103

积分

注册会员

Rank: 2

积分
103
29#
发表于 2019-11-7 14:15:56 | 只看该作者
京东数码购物支持本站

看看学习下
回复 支持 反对

使用道具 举报

0

主题

25

帖子

23

积分

新手上路

Rank: 1

积分
23
28#
发表于 2019-7-17 10:24:09 | 只看该作者
京东数码购物支持本站
thank you very much
回复 支持 反对

使用道具 举报

0

主题

18

帖子

658

积分

高级会员

Rank: 4

积分
658
27#
发表于 2019-4-10 00:28:59 | 只看该作者
京东数码购物支持本站
我来虚心学习,看看怎么转码
回复 支持 反对

使用道具 举报

0

主题

2

帖子

26

积分

新手上路

Rank: 1

积分
26
25#
发表于 2019-1-23 05:12:06 | 只看该作者
京东数码购物支持本站
我想看,故回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-5-13 04:46 , Processed in 0.072970 second(s), 24 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表