打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一个使用秘钥加/解密字符串的delphi函数

//字符串秘钥加解密函数 (keystr 秘钥)
function Crypt3(s,keystr:String; const bEncrypt: boolean = True): String;
  //字符串转为16进制表达字符
  function MyStrToHex(AStr: string): string;
  var
    I ,Len: Integer;
    s:char;
  begin
    len:=length(AStr);
    Result:='';
    for i:=1 to len  do
    begin
      s:=AStr[i];
      Result:=Result + IntToHex(Ord(s),2); //将字符串转化为16进制字符串,
    end;
  end;

var
  i, L: DWord;
  b, k : word;
  mm: Integer;
  key: array of word;
begin
  Result := '';
  L:=Length(S);
  if L<1 then
    exit;

  //变换处理秘钥字符串
  keystr:= MyStrToHex(keystr);
  mm := (length(keystr) div 2)-1;
  if mm<0 then
  begin
    exit;
  end;
  setlength(key,mm+1);
  for i := 0 to mm do
  begin
    key[i] :=  StrToInt('$'+copy(keystr,i*2+1,2));
  end;


  k:=0;
  if bEncrypt then
    //加密
    for i := 1 to L do
    begin
     b := word(S[i]) xor ord(key[k]);
     Result := Result + IntToHex(b,4);
     inc(k);
     if k>mm then
      k:=0;
    end
  else
  begin
    //还原
    k:=0;
    i:=0;
    while i<L div 4 do
    begin
      Result := Result + chr( StrToInt('$'+copy(s,i*4+1,4)) xor key[k]);
      inc(i);
      inc(k);
      if k>mm then
        k:=0;
    end;
  end;
end;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[原创] Ring3挂钩实现网址过滤、重定向
delphi 简体和繁体字符串转换
执行数学公式的函数
字符串与二进制数之间的互相转换 - Http://www.xuedelphi.com
C#算法实现字符串反转
JavaScript字符串函数大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服