首页 > 其他分享 >经常用到的加解密函数

经常用到的加解密函数

时间:2023-08-16 17:47:13浏览次数:36  
标签:Itm 函数 用到 加解密 ppp result key byte string

以下程序可直接用,拷贝就可以了,希望可以起到抛砖引玉的作用。
function StrDecrypt(s: string; key: word): string;

var
 i:byte;
const
 fc1=2;
 fc2=3;
begin
 //result[0]:=s[0];
 setlength(result,length(s));
 for i:=1 to length(s)  do
 begin
 result[i]:=char(byte(s[i])xor  (key  shr  8));
 key:=(byte(result[i])+key)*fc1+fc2;
 end;
end;

function StrEncrypt(s: string; key: word): string;
var
 i:byte;
const
 fc1=2;
 fc2=3;
begin
 setlength(result,length(s));
 for i:=1 to length(s) do begin
 result[i]:=char(byte(s[i])xor(key  shr  8));
 key:=(byte(s[i])+key)*fc1+fc2;
 end;
end;

function  CheckPassWord(Pass:string):String;
Var
 Itm : Array [0..12] of integer;
 i,j,k: Integer;
 ppp : String;
Const
 bb = ’ABCDEFGHIJKL‘;
begin
 Pass:=LowerCase(Trim(Pass));
 k:=Length(Pass);
 j:=1;
 ppp:='';
 Itm[0]:=0;
 if k<12 Then Pass:=Pass+Copy(bb,1,12-k);
 For i:=1 To 12 Do Begin
 j:=j*2;
 Itm[i]:=ord(Pass[i])+k+j;
 Itm[0]:=Itm[0]+Itm[i];
 End;
 Itm[0]:=Itm[0] MOD 12;
 For i:=1 To 12 Do
 ppp:=ppp+inttostr(Itm[i]);
 j:=Itm[0]+1;
 k:=length(ppp);
 if k mod 2 =0 then k:=k-1;
 For i:=1 to 12 Do Begin
 if j>k then j:=j-k;
 Result:=Result+ppp[j];
 j:=j+2;
 End;

end;

 

来源 http://blog.csdn.net/trassion/article/details/7283100

标签:Itm,函数,用到,加解密,ppp,result,key,byte,string
From: https://www.cnblogs.com/lucken2000/p/17635775.html

相关文章

  • 函数性能探测:更简单高效的 Serverless 规格选型方案
    作者:拂衣、丛霄2019年Berkeley预测Serverless将取代Serverful计算成为云计算新范式。Serverless为应用开发提供了一种全新系统架构。借助2023年由OpenAI所带来的AIGC风潮,以阿里云函数计算FC、AWSLambda为代表的Serverless以其更高成本效益、更简化的后端代码......
  • 无涯教程-Perl - socketpair函数
    描述此函数使用PROTOCOL在指定的DOMAIN(指定的TYPE)中创建一对未命名的连接Socket。如果未实现系统socketpair()函数,则将导致致命错误。语法以下是此函数的简单语法-socketpairSOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL返回值如果失败,此函数返回0,如果成功,则返回1。......
  • 字符串函数剖析(3)---strstr函数
    1.strstr函数的巧妙--查找子字符串1.1模拟实现strstr函数strstr函数:在一个字符串中查找子串学习新函数时,先去c库查找该函数的相关资料,更加助于你的学习constchar*strstr(constchar*str1,constchar*str2);先看函数的声明,参数是两个地址,不可更改。先看看strstr函数......
  • 为什么在java中没有虚函数的关键字?
    因为java默认函数是虚函数,都可以被继承和重写。不想被重写需要加上final关键字。参考:C++中普通成员函数加上virtual关键字就成为虚函数。Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特......
  • 无涯教程-Perl - sleep函数
    描述此函数将脚本暂停EXPR秒,如果未指定EXPR,则暂停脚本。返回实际睡眠的秒数。可以被信号处理程序打断,但是您应该避免使用带Alert的睡眠,因为许多系统将Alert用于睡眠实现。语法以下是此函数的简单语法-sleepEXPRsleep返回值此函数返回整数,实际睡眠的秒数例以下......
  • 无涯教程-Perl - sin函数
    描述此函数返回EXPR的正弦值;如果未指定,则返回$_。此函数始终返回浮点数。语法以下是此函数的简单语法-sinEXPRsin返回值此函数返回EXPR的浮点正弦值例以下是显示其基本用法的示例代码-#!/usr/bin/perl$temp=sin(4);print"sinvalueof4is$temp";执行上......
  • 函数提高
    1.函数默认参数如果我们自己传入数据,就使用自己的数据,如果没有,就使用默认值。语法:返回值类型函数名(形参=默认值){}注意事项:1.如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值2.如果函数的声明(原型)有默认参数,那函数的实现就不能有默认参数。声明和实现只......
  • 1.1 C++ STL 字符串构造函数
    String字符串操作容器是C++标准中实现的重要容器,其主要用于对字符串的高效处理,它和C风格中的string.h并不是同一个库,两个库有极大的差距,C库中的string.h主要面向过程提供一些处理函数,而C++库中的string则是基于类实现的更高效的一种字符串处理方法集,类中提供了非常方便的成......
  • 1.1 C++ STL 字符串构造函数
    String字符串操作容器是C++标准中实现的重要容器,其主要用于对字符串的高效处理,它和C风格中的string.h并不是同一个库,两个库有极大的差距,C库中的string.h主要面向过程提供一些处理函数,而C++库中的string则是基于类实现的更高效的一种字符串处理方法集,类中提供了非常方便的成......
  • 多态与虚函数表
    是什么同一操作可以根据对象的类型产生不同的行为为什么灵活,可拓展,简化代码怎么样在父类函数前加virtual,在子类中重写这个虚函数.我们都用父类的指针来指向new出的不同种类的对象.此时这个指针很神通广大,当调用父类的方法时,会根据子类的种类来调用其函数.......