unit dsrnew; interface function ft001(): Integer; stdcall; external 'FUTONGDLL.DLL'; //输出函数Ini: //目的:初步检查是否存在用户锁,如果有存在,提示用户插入用户锁。在程序初始化时,一定要使用这段代码 function ft002(): Integer; stdcall; external 'FUTONGDLL.DLL'; //输出函数CheckKey //目的:用狗中特定的算法验证当前的加密狗是否为授权的正确狗 //返回结果:要进行设置的值 function ft003(a: Integer): Integer; stdcall; external 'FUTONGDLL.DLL'; //输出函数SetValue //目的:用来对变量进行值的设置 //参数a:要进行设置的值 //返回结果:要进行设置的值 //例:对于原来如 x1 = x2; 的赋值方式,可改用 x1 = ft003(x2)的方式 function ft004(var s1, s2: PAnsiChar; len: Integer): Integer; stdcall; external 'FUTONGDLL.DLL'; //输出函数CompareString //目的:用来对两个字符串进行比较 //参数s1:要比较的两个字符串之一 //参数s2:要比较的两个字符串之一 //参数len:要比较的长度 //返回结果:如果为0,两个字符串相等,如果为正数,s1>s2,如果为负数,s1s2,如果为负数,s1b,a","<","=" //返回结果: //如果返回0,表示表达式为假,返回1表示表达式为真 //获取设置加密狗中的参数 //对加密狗的存储区进行操作时,耗时时间较长,应注意!!!! //加密狗中存储位置说明 //允许使用的总空间160字节,其中:64字节存放数据库连接信息,分别是: //标识 对应参数 允许存放的最大字符串长度 // 5 IP地址 15 // 6 用户名 15 // 7 用户口令 15 // 8 DataBase 15 // 9 标识 可用来进行特别标识,如本加密狗的信息,本机硬件信息等 // 0-4 自定义 共80字节空间,每个数字表示1节(16字节),递增 // 注意空间不能溢出,否则引起未知错误; // 0-4标识使用的是连续空间,当0位置的长度超过15时, // 将覆盖1号位置的存储区域。 // 使用 0, 可用空间 80 - 1; // 1, 64 - 1; // 2, 48 - 1; //........ function ft011(outstr: PAnsiChar; Ord: Integer): Integer; stdcall; external 'FUTONGDLL.DLL'; //输出函数GetParm //目的:获取加密狗指定位置的字符串 //参数outstr:目的字符串 //参数Ord:标识加密狗特定地点的标志值(0-9) //返回结果:返回目的字符串的长度 function ft012(instr: PAnsiChar; Ord: Integer): Integer; stdcall; external 'FUTONGDLL.DLL'; //输出函数SetParm //目的:在加密狗的指定位置存放字符串 //参数instr:需存放的字符串 //参数Ord:标识加密狗特定地点的标志值(0-9) //返回结果:返回写入字符串的长度 //加解密函数 function ft021(inStr, outStr: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL'; //说明:本函数单向加密字符串instr,不能逆向解密! //目的:获取输入字符串instr的单向加密字符串outstr //参数instr:需加密的字符串 //参数outStr:单向加密后的密文 //返回结果:返回密文的长度 function ft022(source, dest, key: PAnsiChar; flg: Integer): Integer; stdcall; external 'FUTONGDLL.DLL'; function ft023(source, dest, key: PAnsiChar; flg: Integer): Integer; stdcall; external 'FUTONGDLL.DLL'; //说明:均为字符串加解密函数,可加解密 //目的:用指定的Key,对输入字符串source进行置换,dest为置换后的字符串 //参数source:需置换的字符串源文 //参数dest:置换后后的字符串密文 //参数key:置换采用的key,字符串 //参数flg: 为1时,进行加密,为0时进行解密 //返回结果:返回置换后字符串的长度 function PBDecode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONG.DLL'; //为解密函数入口参数为Strin,需解密的字符串 // StrOut,解密后的字符串(要求预先分配空间) // nInLen,为Strin的长度 // nOutLen,为解密后的长度 function PBEncode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONG.DLL'; //跟上面的函数对应,实现加密功能 { //function ulong SQlfunc(ref string OutStr,ref string InStr,UINT len,UINT ID) LIBRARY "Futong.dll" //对应数据库扩展存储过程(实现加密功能)对应的解密函数 // OutStr要求预先分配空间 // len 为解密后内容长度 // ID 算法因子(和存储过程对应) function checkfunc(handle: Integer; DogFlag: String): Integer; stdcall; external 'FUTONG.DLL'; //检查硬件狗函数 // handle为主窗口句柄 // DogFlag为从数据库中查询到的硬件狗信息 // DLL自动检查硬件狗和DogFlag的信息是否相符,不符时将在3分钟左右自动重启计算机 function GetParm(flag: Integer; out len: Integer; outHex: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL'; //硬件狗中获取特定信息,如IP地址,数据库名称,用户名、口令等 //自定义参数flag取值范围为0--4,存储空间一共为20个字节,为连续的地址空间 //也即:参数0,最大可用长度为20,这时其他参数,将覆盖这个区域 // 参数4,最大可用长度为4 //DogFlag为字符串信息 function SetParm(flag, len: Integer; inHex: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL'; //flag=5IP,=6User,=7Pass,=8DB //硬件狗中设置参数,传入IP时,须设置为 “C8A00164”等形式传入(192.168.1.100) //自定义参数用法同上 function InfoFunc(order: Integer; info: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL'; //读取本机硬件信息,返回值为机器网卡个数 //考虑到某些可移动的网卡,要查询固定的网卡信息 //软件安装时要求移除可移动网卡 //order为第几块网卡,从0开始 function GetHostIpAddr(DogParm, HostName, IPAddr: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL'; //获取硬件狗标识,本机IP地址(仅参考,因为机器有多个IP地址,获取的只是其中之一) //以及机器名称 } implementation end.