MD5算法的T-SQL实现(FORSQL2000)(一)

来源:互联网 发布:linux system 头文件 编辑:程序博客网 时间:2024/05/21 10:08
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

/*****************************************************************************
*Name:T-SQLMD5算法实现
*Author: RamboQian
*CreateDate:2003-04-10
*LastModifiedby:RamboQian
*LastUpdateDate:2003-04-16
*Version:V1.0.00
*****************************************************************************/
GO

IFEXISTS(SELECT*FROMDbo.sysobjectsWHEREid=OBJECT_ID(N'[dbo].[MD5_m_OnBits]')ANDxtypeIN(N'FN',N'IF',N'TF'))
  DROPFUNCTION[dbo].[MD5_m_OnBits]
GO
/*****************************************************************************
*Name:MD5_m_OnBits
*Description:常数组
*****************************************************************************/
CREATEFUNCTIONdbo.MD5_m_OnBits(
  @i  TINYINT
)
RETURNSINT
WITHENCRYPTION
AS
BEGIN
  DECLARE@iRes  INT
  SELECT@iRes=
    CASE@i
      WHEN0 THEN1      --00000000000000000000000000000001
      WHEN1 THEN3      --00000000000000000000000000000011
      WHEN2 THEN7      --00000000000000000000000000000111
      WHEN3 THEN15     --00000000000000000000000000001111
      WHEN4 THEN31     --00000000000000000000000000011111
      WHEN5 THEN63     --00000000000000000000000000111111
      WHEN6 THEN127     --00000000000000000000000001111111
      WHEN7 THEN255     --00000000000000000000000011111111
      WHEN8 THEN511     --00000000000000000000000111111111
      WHEN9 THEN1023    --00000000000000000000001111111111
      WHEN10THEN2047    --00000000000000000000011111111111
      WHEN11THEN4095    --00000000000000000000111111111111
      WHEN12THEN8191    --00000000000000000001111111111111
      WHEN13THEN16383    --00000000000000000011111111111111
      WHEN14THEN32767    --00000000000000000111111111111111
      WHEN15THEN65535    --00000000000000001111111111111111
      WHEN16THEN131071   --00000000000000011111111111111111
      WHEN17THEN262143   --00000000000000111111111111111111
      WHEN18THEN524287   --00000000000001111111111111111111
      WHEN19THEN1048575   --00000000000011111111111111111111
      WHEN20THEN2097151   --00000000000111111111111111111111
      WHEN21THEN4194303   --00000000001111111111111111111111
      WHEN22THEN8388607   --00000000011111111111111111111111
      WHEN23THEN16777215  --00000000111111111111111111111111
      WHEN24THEN33554431  --00000001111111111111111111111111
      WHEN25THEN67108863  --00000011111111111111111111111111
      WHEN26THEN134217727  --00000111111111111111111111111111
      WHEN27THEN268435455  --00001111111111111111111111111111
      WHEN28THEN536870911  --00011111111111111111111111111111
      WHEN29THEN1073741823 --001111111111111111111111111111111

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>