linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > Delphi >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·HexToStr函数和StrToHex函数
·Delphi中的进制转换
·delphi轻松设置无边框透明窗体
·delphi第三方控件安装(Ehlib)
·DELPHI组件安装全攻略
·delphi动态创建控件
·开发工具比较Visual C++ VS De
·delphi完整身份证效验程序实例
·delphi中的Format函数详解
·delphi编程获取打印机的打印任
·如何判断文本文件的编码格式
·深入研究Variant数组
·用delphi编写网络游戏的外挂
·Delphi技巧-用户自定义数据类型
·delphi设置控件透明
最新文章
·在应用程序中跟踪MOUSE的坐标
·压缩和修复MS Access 2000文件
·DELPHI 6.0 动画制做
·怎样在Delphi中调用LastError信
·怎样得到主域服务器名称
·怎样利用递归实现删除某一目录
·读出主键下所有项
·如何制作照片底片效果的图像(
·获得Modem的状态
·WebBrowser屏幕滚动的实现,设
·有关字符串处理的小技巧
·Delphi建立键盘鼠标动作纪录与
·Delphi中布尔类型辨析
·DELPHI程序注册码设计
·图形的不规则的Copy
Google
 
字符串加密解密
[ 作者:  加入时间:2007-12-13 12:46:09  来自:Linux联盟收集整理 ]
type5FALinux联盟
  TDynByteArray = array of byte;5FALinux联盟
5FALinux联盟
const5FALinux联盟
  SeedA             = 5678;   /// 常量,你可以修改5FALinux联盟
  SeedB             = 5432;   /// 常量,你可以修改5FALinux联盟
5FALinux联盟
/// 对数组加密5FALinux联盟
function Crypt(const s: TDynByteArray; Key: Word; const bEncrypt: boolean = true): TDynByteArray; overload;5FALinux联盟
var5FALinux联盟
  i                 : integer;5FALinux联盟
begin5FALinux联盟
  SetLength(Result, Length(s));5FALinux联盟
  for i := Low(s) to High(s) do5FALinux联盟
  begin5FALinux联盟
    Result[i] := s[i] xor (key shr 8);5FALinux联盟
    if bEncrypt then5FALinux联盟
      Key := (Result[i] + key) * SeedA + SeedB5FALinux联盟
    else5FALinux联盟
      Key := (s[i] + Key) * SeedA + SeedB;5FALinux联盟
  end;5FALinux联盟
end;5FALinux联盟
5FALinux联盟
/// 字符串5FALinux联盟
function Crypt(const s: string; Key: Word; const bEncrypt: boolean = True): string; overload;5FALinux联盟
var5FALinux联盟
  i                 : integer;5FALinux联盟
  ps, pr            : ^byte;5FALinux联盟
begin5FALinux联盟
  SetLength(Result, Length(s));5FALinux联盟
  ps := @s[1];5FALinux联盟
  pr := @Result[1];5FALinux联盟
  for i := 1 to length(s) do5FALinux联盟
  begin5FALinux联盟
    pr^ := ps^ xor (Key shr 8);5FALinux联盟
    if bEncrypt then5FALinux联盟
      Key := (pr^ + Key) * SeedA + SeedB5FALinux联盟
    else5FALinux联盟
      Key := (ps^ + Key) * SeedA + SeedB;5FALinux联盟
    pr := pointer(integer(pr) + 1);5FALinux联盟
    ps := pointer(integer(ps) + 1);5FALinux联盟
  end5FALinux联盟
end;5FALinux联盟
5FALinux联盟
/// 也可以对记录进行加密,只要把TResultData改成你的记录类型即可!!!!!!5FALinux联盟
function Crypt(const s: TResultData; Key: Word; const bEncrypt: boolean = True): TResultData; overload;5FALinux联盟
var5FALinux联盟
  i                 : integer;5FALinux联盟
  ps, pr            : ^byte;5FALinux联盟
begin5FALinux联盟
  ps := @s;5FALinux联盟
  pr := @Result;5FALinux联盟
  for i := 1 to SizeOf(s) do5FALinux联盟
  begin5FALinux联盟
    pr^ := ps^ xor (Key shr 8);5FALinux联盟
    if bEncrypt then5FALinux联盟
      Key := (pr^ + Key) * SeedA + SeedB5FALinux联盟
    else5FALinux联盟
      Key := (ps^ + Key) * SeedA + SeedB;5FALinux联盟
    pr := pointer(integer(pr) + 1);5FALinux联盟
    ps := pointer(integer(ps) + 1);5FALinux联盟
  end;5FALinux联盟
end;5FALinux联盟
***************************5FALinux联盟
function cryptstr(const s:string; stype: dword):string;5FALinux联盟
var5FALinux联盟
  i: integer;5FALinux联盟
  fkey: integer;5FALinux联盟
begin5FALinux联盟
  result:='';5FALinux联盟
  case stype of5FALinux联盟
  0:    5FALinux联盟
    begin5FALinux联盟
      randomize;5FALinux联盟
      fkey := random($ff);5FALinux联盟
      for i:=1 to length(s) do5FALinux联盟
       result := result+chr( ord(s[i]) xor i xor fkey);5FALinux联盟
      result := result + char(fkey);5FALinux联盟
    end;5FALinux联盟
  1:    5FALinux联盟
    begin5FALinux联盟
      fkey :=  ord(s[length(s)]);5FALinux联盟
      for i:=1 to length(s) - 1 do5FALinux联盟
      result := result+chr( ord(s[i]) xor i xor fkey);5FALinux联盟
   end;5FALinux联盟
end;5FALinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·javascript规定最多输入的字符串长度  (2007-11-30 13:02:24)
 ·在字符串中把网址改成超级链接  (2007-11-28 14:30:33)
 ·从字符串中读取XML的通用函数  (2007-11-27 11:47:14)
 ·如何用函数名字符串来调用函数  (2007-11-26 14:25:41)
 ·Delphi中字符串和控件的相互转化  (2007-11-26 13:43:50)
 ·去掉字符串前后的空格  (2007-11-23 12:16:02)
 ·旧题新貌:PHP截取中文字符串的问题  (2007-11-22 16:05:24)
 ·Delphi 中的字符串  (2007-11-20 13:32:21)
 ·在 case 语句中使用字符串  (2007-11-16 12:26:31)
 ·delphi实现分行显示一个长字符串  (2007-11-15 10:29:14)