SQLSERVER 调用DLL 解密

原创 2015年11月20日 16:49:17

1:新类(微软自动加密算法) 生成DLL

public static string DesDecryptFixKey(string p_strInput)

        {
            string key = "kingfykj";
            byte[] byKey = null;
            byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
            byte[] inputByteArray = new Byte[p_strInput.Length];


            try
            {
                byKey = System.Text.Encoding.UTF8.GetBytes(key.Substring(0, 8));
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Convert.FromBase64String(p_strInput);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                System.Text.Encoding encoding = new System.Text.UTF8Encoding();
                return encoding.GetString(ms.ToArray());
            }
            catch (System.Exception ex)
            {
                throw (ex);
            }
        }


2在数据库服务器运行安装CLR

EXEC sp_configure 'show advanced options','1'; 
GO 
RECONFIGURE; 
GO 
EXEC sp_configure 'clr enabled','1'
RECONFIGURE; 
GO 

3加载DLL 到数据库服务引擎 生成程序集

CREATE ASSEMBLY MyDecryptFix 
FROM 'G:\MyDecryptFix.dll'
WITH permission_set = UNSAFE 

4装载解密方法

CREATE FUNCTION DesDecryptFixKey(@urlstr NVARCHAR(4000)) 
RETURNS NVARCHAR(4000) 
AS

EXTERNAL NAME  [MyDecryptFix].[MyDecryptFix.DESHelper].[DesDecryptFixKey]


5测试

SELECT [dbo].[DesDecryptFixKey]('+1m6GaXObBs=')

如何在sqlserver中调用dll

主  题:  如何在Sql server中调用Dll,并且可从Dll中得到返回的数据 作  者:  visual (胖都胖的那么帅)  等  级:    信 誉 值:  100 所属论坛:  MS-S...
  • tangkuai
  • tangkuai
  • 2005年03月08日 22:52
  • 2668

Sql Server调用C#编写的DLL

下面以发送邮件为例,来简单说明如何使用SQL SERVER调用DLL的功能。第一步:新建一个CS类库using System;using System.Collections.Generic;usin...
  • delphi1234
  • delphi1234
  • 2007年08月21日 11:54
  • 6239

DLL的两种加载方式

DLL有两种调用方式 一,隐式加载(需要.lib和.dll) 二,显式加载(需要.dll)
  • enjoy5512
  • enjoy5512
  • 2016年05月31日 20:22
  • 1153

Microsoft report viewer 2012出现无法加载相关dll的解决办法

Microsoft report viewer 2012出现无法加载相关dll的解决办法   使用VS 2012开发报表, 如果是使用的微软的报表控件的话,默认是使用的MICROSOFT REPO...
  • wjw6200
  • wjw6200
  • 2014年02月22日 00:39
  • 1765

从内存资源中加载DLL:CMemLoadDll源码整理

头文件 /*****MemLoadDll.h*****/ #if !defined(Q_OS_LINUX) #pragma once typedef BOOL (__stdcall *Pro...
  • tianshi_1988
  • tianshi_1988
  • 2016年04月22日 18:00
  • 988

AutoCAD.NET自动加载自己开发的程序集dll

自动加载.NET开发的DLL程序库需要修改注册表信息HKEY LOCAL_ MACHINE下的AutoCAD相应版木卜的Application 项卜创建一个新项里而设以卜四个个键值: "DESCR...
  • u011170962
  • u011170962
  • 2014年07月21日 20:10
  • 2895

DLL高级技术之延迟载入

VC++提供了一个很棒的技术:DLL延迟加载技术,因为DLL的加载是比较浪费时间的,特别是大型软件加载,因此,这项技术是在应对软件初始化过程中避免浪费太多的时间。 [1]因为部分DLL是在软件运行过...
  • u012541747
  • u012541747
  • 2016年03月10日 21:46
  • 1633

直接载入内存中的DLL

http://www.cppblog.com/mybios/archive/2006/11/21/15483.html 作者:任明汉 下载源代码 前言   你可能不希望在发布程序时附带上一个外...
  • tiandyoin
  • tiandyoin
  • 2014年09月09日 17:29
  • 8201

动态链接库DLL的加载:隐式加载(载入时加载)和显式加载(运行时加载)

静态链接库在链接时,编译器会将 .obj 文件和 .LIB 文件组织成一个 .exe 文件,程序运行时,将全部数据加载到内存。 如果程序体积较大,功能较为复杂,那么加载到内存中的时间就会比较长,...
  • shuimanting520
  • shuimanting520
  • 2016年05月07日 07:45
  • 1706

如何理解C# 加载DLL的顺序

原文地址 :http://www.cnblogs.com/chenxizhang/archive/2013/03/14/2959688.html 没有做强名称签名的程序集 对于这种情况,C...
  • skysword2
  • skysword2
  • 2016年09月21日 09:50
  • 993
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQLSERVER 调用DLL 解密
举报原因:
原因补充:

(最多只允许输入30个字)