⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reg.pas

📁 (转)一个包含目前所有流行的加解密代码(RSA
💻 PAS
📖 第 1 页 / 共 2 页
字号:

    FreeLibrary(hlib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure RSAEncrypt(lpInBuffer:PChar; lpDdata:PChar; lpNdata:PChar; Mode:Integer);
{RSA 加密}
var
  RSAEncrypt: function(lpInBuffer:PChar; lpDdata:PChar; lpNdata:PChar; Mode:Integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..256] of Char;
begin
  FillChar(OutputStr, Sizeof(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @RSAEncrypt := GetProcAddress(hlib, 'RSAEncrypt');
    if @RSAEncrypt <> nil then begin
      if RSAEncrypt(lpInBuffer, lpDdata, lpNdata, Mode, OutputStr, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
      end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hlib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure RSADecrypt(lpInBuffer:PChar; lpNdata:PChar; Mode:Integer);
{RSA 解密}
var
  RSADecrypt: function(lpInBuffer:PChar; lpNdata:PChar; Mode:Integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..256] of Char;
begin
  FillChar(OutputStr, Sizeof(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @RSADecrypt := GetProcAddress(hlib, 'RSADecrypt');
    if @RSADecrypt <> nil then begin
      if RSADecrypt(lpInBuffer, lpNdata, Mode, OutputStr, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
      end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hlib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure CRCFileCheck(FileNameStr:PChar);
{CRC 文件校验}
var
  CRCFileCheck: function(FileNameStr:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..32] of Char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @CRCFileCheck := GetProcAddress(hLib, 'CRCFileCheck');
    if @CRCFileCheck <> nil then begin
      if CRCFileCheck(FileNameStr, OutputStr, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure FileEncrypt(lpInputFileName:PChar; lpOutputFileName:PChar; lpKey:PChar);
{文件加密}
var
  FileEncrypt: function(lpInputFileName:PChar; lpOutputFileName:PChar; lpKey:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
begin
  Initialize;
  if hlib <> 0 then begin
    @FileEncrypt := GetProcAddress(hLib, 'FileEncrypt');
    if @FileEncrypt <> nil then begin
      if FileEncrypt(lpInputFileName, lpOutputFileName, lpKey, lpRegisterCode) then
        Return := '加密成功!'
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure FileDecrypt(lpInputFileName:PChar; lpOutputFileName:PChar; lpKey:PChar);
{文件解密}
var
  FileDecrypt: function(lpInputFileName:PChar; lpOutputFileName:PChar; lpKey:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
begin
  Initialize;
  if hlib <> 0 then begin
    @FileDecrypt := GetProcAddress(hLib, 'FileDecrypt');
    if @FileDecrypt <> nil then begin
      if FileDecrypt(lpInputFileName, lpOutputFileName, lpKey, lpRegisterCode) then
        Return := '解密成功!'
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure Base64Encode(lpInBuffer:PChar);
{Base64 加密}
var
  Base64Encode: function(lpInBuffer:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..200] of Char;//输出长度请参考帮助文件
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @Base64Encode := GetProcAddress(hLib, 'Base64Encode');
    if @Base64Encode <> nil then begin
      if Base64Encode(lpInBuffer, OutputStr, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure Base64Decode(lpInBuffer:PChar);
{Base64 解密}
var
  Base64Decode: function(lpInBuffer:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..200] of Char;//输出长度请参考帮助文件
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @Base64Decode := GetProcAddress(hLib, 'Base64Decode');
    if @Base64Decode <> nil then begin
      if Base64Decode(lpInBuffer, OutputStr, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure CRC32(lpInBuffer:PChar; length:Integer);
{CRC32 校验}
var
  CRC32: function(lpInBuffer:PChar; length:Integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..32] of Char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @CRC32 := GetProcAddress(hlib, 'CRC32');
    if @CRC32 <> nil then begin
      if CRC32(lpInBuffer, length, OutputStr, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hlib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure GetDllVersion();
{获取当前 Reg.dll 版本号}
var
  GetDllVersion: function(lpOutBuffer:PChar): Boolean;  stdcall;
  DllVersion: array [0..10] of Char;
begin
  FillChar(DllVersion, SizeOf(DllVersion), #0);
  Initialize;
  if hlib <> 0 then begin
    @GetDllVersion := GetProcAddress(hLib, 'GetDllVersion');
    if @GetDllVersion <> nil then begin
      if GetDllVersion(DllVersion) then
        Return := DllVersion
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

//3.2版本新增函数
procedure GetMainBoardId();
{获取主板序列号}
var
  GetMainBoardId: function(lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  MainBoardId: array [0..50] of Char;
begin
  FillChar(MainBoardId, SizeOf(MainBoardId), #0);
  Initialize;
  if hlib <> 0 then begin
    @GetMainBoardId := GetProcAddress(hLib, 'GetMainBoardId');
    if @GetMainBoardId <> nil then begin
      if GetMainBoardId(MainBoardId, lpRegisterCode) then
        Return := MainBoardId
      else
        Return := '函数调用错误!'
    end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hLib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure DesEncrypt(lpInBuffer:PChar; lpKey:PChar);
{Des 加密}
var
  DesEncrypt: function(lpInBuffer:PChar; lpOutBuffer:PChar; lpKey:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..500] of Char;
begin
  FillChar(OutputStr, Sizeof(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @DesEncrypt := GetProcAddress(hlib, 'DesEncrypt');
    if @DesEncrypt <> nil then begin
      if DesEncrypt(lpInBuffer, OutputStr, lpKey, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
      end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hlib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

procedure DesDecrypt(lpInBuffer:PChar; lpKey:PChar);
{Des 解密}
var
  DesDecrypt: function(lpInBuffer:PChar; lpOutBuffer:PChar; lpKey:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  OutputStr: array [0..500] of Char;
begin
  FillChar(OutputStr, Sizeof(OutputStr), #0);
  Initialize;
  if hlib <> 0 then begin
    @DesDecrypt := GetProcAddress(hlib, 'DesDecrypt');
    if @DesDecrypt <> nil then begin
      if DesDecrypt(lpInBuffer, OutputStr, lpKey, lpRegisterCode) then
        Return := OutputStr
      else
        Return := '函数调用错误!'
      end
    else
      ShowMessage('加载功能模块出错!');

    FreeLibrary(hlib);
  end
  else
    ShowMessage('无法加载DLL!');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -