175 lines
5.9 KiB
ObjectPascal
175 lines
5.9 KiB
ObjectPascal
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,如果为负数,s1<s2
|
||
|
||
|
||
function ft005(var s1, s2: PAnsiChar; len: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
|
||
//输出函数CompareStringNoCase
|
||
//目的:用来对两个字符串进行比较(忽略大小写)
|
||
//参数s1:要比较的两个字符串之一
|
||
//参数s2:要比较的两个字符串之一
|
||
//参数len:要比较的长度
|
||
//返回结果:如果为0,两个字符串相等,如果为正数,s1>s2,如果为负数,s1<s2
|
||
|
||
|
||
function ft006(var s1, s2: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
|
||
//输出函数Strcat
|
||
//目的:用来对两个字符串进行连接
|
||
//参数s1:要连接的两个字符串之一
|
||
//参数s2:要连接的两个字符串之一
|
||
//返回结果:返回目的字符串的长度, s1 为连接后的字符串
|
||
//相当于 s1 = s1 + s2, s2加在s1的后面, 返回。
|
||
|
||
|
||
function ft007(sd, s: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
|
||
//输出函数Strcpy
|
||
//目的:对字符串进行复制
|
||
//参数sd:目的字符串
|
||
//参数s:源字符串
|
||
//返回结果:返回目的字符串的长度
|
||
//相当于 sd = s
|
||
|
||
|
||
function ft008(p1, p2: Integer; exp: Char): Integer; stdcall; external 'FUTONGDLL.DLL';
|
||
//输出函数:Compare
|
||
//目的:用来比较两个数的大小,相当于?a>b,a<b,a=b
|
||
//参数p1:要比较的第一个数
|
||
//参数p2:要比较的第二个数
|
||
//参数c:是大于,小于或等于,即">","<","="
|
||
//返回结果:
|
||
//如果返回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.
|
||
|