找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 710|回复: 1

字符串隐藏一法

[复制链接]

35

主题

102

回帖

204

牛毛

一级牛人

积分
204
QQ
发表于 2009-4-29 16:33:45 | 显示全部楼层 |阅读模式 来自 四川省遂宁市
作者:fonge
日期:2007-8-2 09:58
{**************************************************************
  
  code by fonge with almost pure delphi
                                                         2007-08-02
设计模式:
通过使用char数组来实现字符串隐藏;

具体请看示例代码:
==================================================
源码如下:复制内容到剪贴板代码:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  t:array[1..14] of char;     //用数组来实现隐藏
begin
  t[1]:=Char(103);
  t[2]:=Char(111);
  t[3]:=Char(111);
  t[4]:=Char(100);
  t[5]:=Char(32);
  t[6]:=Char(106);
  t[7]:=Char(111);
  t[8]:=Char(98);
  t[9]:=Char(44);
  t[10]:=Char(32);
  t[11]:=Char(109);
  t[12]:=Char(97);
  t[13]:=Char(110);
  t[14]:=Char(33);
  Showmessage(t);               //英文的“good job, man!”
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  t:array[1..20] of char;          //用数组来实现隐藏
begin
  t[1]:=Char(185);
  t[2]:=Char(167);
  t[3]:=Char(207);
  t[4]:=Char(178);
  t[5]:=Char(196);
  t[6]:=Char(227);
  t[7]:=Char(163);
  t[8]:=Char(172);
  t[9]:=Char(215);
  t[10]:=Char(162);
  t[11]:=Char(178);
  t[12]:=Char(225);
  t[13]:=Char(179);
  t[14]:=Char(201);
  t[15]:=Char(185);
  t[16]:=Char(166);
  t[17]:=Char(193);
  t[18]:=Char(203);
  t[19]:=Char(163);
  t[20]:=Char(161);
  Showmessage(t);                     //中文的“恭喜你,注册成功了!”
end;

end.有人会觉得这样写代码很累,没关系,这里有批量生成上面结果的代码,我正用之...
且上面代码均为其生成之...
edit1.text输入你的提示字符串,edit2.text输入为你预定义的变量名,默认为't'...
点击即可生成像上面的代码,保存在ByTeCrypt.txt,直接copy使用之...复制内容到剪贴板代码:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
    wFile:TextFile;
    wFileName,s,t:String;
    i:Integer;
begin
    s:=Edit1.Text;
    t:=Edit2.Text;
    if length(s)=0 then
        begin
           showmessage('Please input your string');
           exit;
        end;
    if length(t)=0 then
        begin
           showmessage('请输入变量名');
           exit;
        end;
    t:=Edit2.Text;
    wFileName:= 'ByTeCrypt.txt';
    AssignFile(wFile, wFileName);
    Rewrite(wFile);
    Writeln(wFile,'var');
    Writeln(wFile,'  '+t+':array[1..'+IntToStr(Length(s))+'] of char;');                  //生成定义t:array[1..?] of char
    Writeln(wFile,'begin');
    for i:=1 to Length(s) do
       begin
          Writeln(wFile, '  '+t+'['+IntToStr(i)+']:=Char('+IntToStr(Ord(s[i]))+');');     //生成语句t[?]:=Char(?);
       end;
    Writeln(wFile,'  Showmessage('+t+');');
    Writeln(wFile,'end;');
    CloseFile(wFile);
    showmessage('执行完毕,请查看同目录下ByTeCrypt.txt文件!');
end;
end.

0

主题

41

回帖

16

牛毛

初生牛犊

积分
16
发表于 2009-6-11 19:39:16 | 显示全部楼层 来自 湖南省郴州市
这方面值得参考一下,哈哈。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-26 06:52 , Processed in 0.214158 second(s), 39 queries .

Powered by Discuz! X3.5

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