求个mssql2000md5函数和aspmd5加密效果一致的函数 32yonghanyang]

发布时间:2016-12-11 6:29:49 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"求个mssql2000md5函数和aspmd5加密效果一致的函数 32yonghanyang]",主要涉及到求个mssql2000md5函数和aspmd5加密效果一致的函数 32yonghanyang]方面的内容,对于求个mssql2000md5函数和aspmd5加密效果一致的函数 32yonghanyang]感兴趣的同学可以参考一下。

为了更方便开发,求个mssql加密函数要和aspmd5加密结果要保持一直,这样更方便于对比加密数据 分不多,全部家当

转贴自teched讲师:  牛可   基本概念: 第一层 服务主密钥  备份服务主密钥 backup service master key to file='c:\smk.bak' encryption by [email protected]'   restore service master key from file='c:\smk.bak' decryption by [email protected]'   第二层 数据库主密钥 1)必须先在该数据库上创建数据库主密钥才能使用 create master key encryption by [email protected]'   2)使用数据库主密钥 -如果数据库主密钥使用服务密钥进行保护,则在使用时会自动打开 opren master key decryption by [email protected]'   3)查看数据库主密钥状态 sys.symmetric_keys   4)备份数据库主密钥 backup master key to file='c:\smk.bak' encryption by [email protected]'   restore master key from file='c:\smk.bak' decryption by [email protected]'     数字证书 创建自签名 create certificate cert_myCert encryption by [email protected]' with subject='Self Signed Cert', start_date='1/31/2006' expiry_date='1/31/2008'     非对称密钥 创建新的密钥对 create asymmetric key asy_Key1 with algorithm=RSA_2048 encryption by [email protected]'     对称密钥 创建新的密钥对 create symmetric key SymKeyMarketing3 with algorithm=AES_2048 encryption by certificate asy_Key1   使用对称密钥 使用前必须打开 open symmetric SymKeyMarketing3 decryption by certificate asy_Key1   sys.open_keys     数据列加密 -使用对称密钥加密大量的列数据 -考虑使用证书,非对称密钥保护对称密钥   防止绕过加密数据列的攻击-使用验证器   注: 在加密列上的索引将变得无效 加密数据列的长度增长,建议使用varbinary(max)数据类型 修改已有的dml语句以支持加密的数据列   -----***********示例1 了解数据库加密体系结构*****-----   --************(1) 服务主密钥 --准备工作 --创建测试数据库TestDB --1)备份服务主密钥 backup service master key to file='g:\smk.bak' encryption by [email protected]'   --2)生成新的主密钥 Alter service master key regenerate   --3)从备份文件还原服务主密钥 Restore service master key from file= file='g:\smk.bak' encryption by [email protected]'   --*************(2) 数据库主密钥 --1)为数据库创建数据库主密钥 create master key encryption by [email protected]' go --2)查看数据库加密状态 select [name],is_master_key_encrypted_by_server  from sys.databases where name='TestDB'   --3)查看数据库主密钥的信息 select * from sys.symmetric_keys    --4)备份数据库主密钥 backup master key to file='g:\testdbkey.bak' encryption by [email protected]'   --5)删除服务主密钥对数据库主密钥的保护 --创建非对称密钥成功,自动使用服务主密钥解密并使用该数据库主密钥 create asymmetric key asy_Testkey1 with algorithm=RSA_1024 go --删除服务主密钥对数据库主密钥的保护 alter master key drop encryption by service master key go   --查看数据库加密状态 select [name],is_master_key_encrypted_by_server  from sys.databases where name='TestDB'   --创建非对称密钥失败,因为数据库主密钥未打开 create asymmetric key asy_Testkey2 with algorithm=RSA_1024 go --打开数据库主密钥 open master key decryption by [email protected]' select * from sys.openkeys go --创建非对称密钥成功 create asymmetric key asy_Testkey2 with algorithm=RSA_1024 go   --恢复服务主密钥对数据库主密钥的保护 alter master key add encryption by service master key close master key go   --*****(3)证书 --1)创建自签名证书 create certificate cert_Testcert encryption by [email protected]' with subject='TestCert1', start_date='1/31/2006', expiry_date='1/31/2008' go select * from sys.certificates     --2)从文件导入证书 Create certificate cert_TestCert2 From file=’g:\MSCert.cer’ Go   -- 3)备份导出证书和密钥 backup certificate cert_Testcert to file='g:\Testcert.cer' with private key (decryption by [email protected]', file='g:\TestCert_pvt',--私密钥 encryption by [email protected]' ) go   --4)使用证书加解密数据 --加密:使用证书的公钥 declare @cleartext varbinary(200) declare @cipher varbinary(200) set @cleartext=convert( varbinary(200),'Test text string') set @cipher=EncryptByCert(Cert_ID('cert_TestCert'),@cleartext) select @cipher   --解密:使用证书的私钥 select convert(varchar(200),DecryptByCert(Cert_ID('cert_TestCert'),@cipher,[email protected]')) as [cleartext]     --5) 删除证书私钥 alter certificate cert_TestCert remove private key go   --加密成功 declare @cleartext varbinary(200) declare @cipher varbinary(200) set @cleartext=convert( varbinary(200),'Test text string') set @cipher=EncryptByCert(Cert_ID('cert_TestCert'),@cleartext) select @cipher   --解密失败:因为私钥被删除 select convert(varchar(200),DecryptByCert(Cert_ID('cert_TestCert'),@cipher,[email protected]')) as [cleartext]     --***(4) 非对称密钥 --1)使用sn.exe生成非对称密钥,安装vs2005后有sn.exe, 在命令行方式下执行 sn -k g:\asy_Test.key   --2)从文件创建非对称密钥 create asymmetric key asm_Test from file='g:\asy_Test.key' encryption by [email protected]' go   select * from sys.asymmetric_keys       --***********示例2 使用加密保护列数据 -----*****(1) 准备工作 --1) 创建示例表 create table empsalary (EmpID int,  Title nvarchar(50),  Salary varbinary(500) ) go   --2) 创建数据库主密钥 create master key encryption by [email protected]' go   --3) 创建用于加密的对称密钥 create symmetric key sym_Salary with algorithm=AES_192 encryption by [email protected]' go   select * from sys.symmetric_keys where [name]='sym_Salary'   ------****(2)加密列数据 --1)打开对称密钥 open symmetric key sym_Salary decryption by [email protected]' go select * from sys.openkeys   --2)向表中插入数据,并对salary列加密 insert into empsalary values (1,'CEO',EncryptByKey(KEY_GUID('sym_Salary'),'20000')) insert into empsalary values (2,'Manager',EncryptByKey(KEY_GUID('sym_Salary'),'10000')) insert into empsalary values (3,'DB Admin',EncryptByKey(KEY_GUID('sym_Salary'),'5000'))   --3)关闭打开的对称密钥 close symmetric key sym_Salary go select * from sys.openkeys     --4) 查看表中的数据 select * from empsalary   --(3)解密并访问被加密的数据列 --1)打开对称密钥 open symmetric key sym_Salary decryption by [email protected]' go --2)使用对称密钥解密并访问被加密的列 select empid,title,cast(DecryptByKey(Salary) as varchar(20)) as salary from empsalary   --3) 关闭对称密钥 close symmetric key sym_Salary go   --(4)绕过加密数据的攻击 --1)攻击者使用其他数据行的加密数据替换某一行的数据 update empsalary  set salary=(select salary from empsalary where empid=1) where empid=3   --2)查看被攻击后解密的数据 open symmetric key sym_Salary decryption by [email protected]' select empid,title,cast(DecryptByKey(Salary) as varchar(20)) as salary from empsalary close symmetric key sym_Salary     --(5)使用验证器防止绕过加密数据的攻击 --1)删除前面添加的数据行 delete empsalary   --2)向表插入数据,并对salary列的数据使用验证器进行加密 open symmetric key sym_Salary decryption by [email protected]' insert into empsalary values (1,'CEO',EncryptByKey(KEY_GUID('sym_Salary'),'20000',1,'1')) insert into empsalary values (2,'Manager',EncryptByKey(KEY_GUID('sym_Salary'),'10000',1,'2')) insert into empsalary values (3,'DB Admin',EncryptByKey(KEY_GUID('sym_Salary'),'5000',1,'3'))   --3)解密并访问被加密的数据 select empid,title,cast(DecryptByKey(Salary,1,cast(empid as varchar(3))) as varchar(20)) as salary from empsalary   --4)用同样的方法篡改数据 update empsalary  set salary=(select salary from empsalary where empid=1) where empid=3   --5)被篡改后的加密了的数据列变成无效 select empid,title,cast(DecryptByKey(Salary,1,cast(empid as varchar(3))) as varchar(20)) as salary from empsalary       --***********示例3 使用数字证书签署存储过程   --*****(1)准备 --1)创建数据库主密钥 create master key encryption by [email protected]'   --2)创建签署存储过程所需要的证书 create certificate cert_Product with subject='Products Sign', start_date='1/31/2006', expiry_date='1/31/2008' go   --3)创建SPDeveloper登录帐户和用户,该用户创建并访问Products表的存储过程 create login [SPDeveloper] with [email protected]',default_database=[TestDB] go create user [SPDeveloper] for login SPDeveloper with default_schema=[SPDeveloper] go create schema products authorization SPDeveloper go exec sp_addrolemember @rolename='db_owner',@membername='SPDeveloper'   --4)以SPDeveloper的身份创建存储过程products.usp_Products execute as user='SPDeveloper' go create procedure products.usp_Products as select * from dbo.Products go   revert select user   --5)创建普通用户jerry create login [jerry] with [email protected]',default_database=[TestDB] go create user [jerry] for login jerry  go   --*******(2)使用证书签署存储过程 --1)授予用户jerry执行存储过程的权限 grant execute on products.usp_Products to jerry   --2)以jerry的身份执行存储过程失败,因为拥有权链的断裂的 execute as user='jerry' select user go   execute products.usp_Products go revert   --3)使用证书在当前数据库创建用户ProductsReader,并为该用户赋予读取products表的权限 create user ProductsReader for certificate cert_Products go grant select on products To ProductsReader   --4)使用证书签署当前存储过程 add signature to products.usp_Products by certificate cert_Products   --5)以jerry的身份重新执行存储过程,成功 --因为存储过程将以ProductsReader的权限上下文执行 execute as user='jerry' select user go   execute products.usp_Products go revert 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cuoguo1111/archive/2006/11/29/1419515.aspx 供产考

我求的是MD5加密函数,要在mssql2000中运行和asp中运行要保持一直的两个函数

没人回答,自己顶

没人回答,自己顶

太复杂了吧?

那你ASP用的是哪个函数?

Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD = 32 Private m_lOnBits(30) Private m_l2Power(30)   Private Function LShift(lValues, iShiftBitss)   dim lValue,iShiftBits:lValue=lValues:iShiftBits=iShiftBitss     If iShiftBits = 0 Then         LShift = lValue         Exit Function     ElseIf iShiftBits = 31 Then         If lValue And 1 Then             LShift = &H80000000         Else             LShift = 0         End If         Exit Function     ElseIf iShiftBits < 0 Or iShiftBits > 31 Then         Err.Raise 6     End If     If (lValue And m_l2Power(31 - iShiftBits)) Then         LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000     Else         LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))     End If End Function Private Function RShift(lValues, iShiftBitss)   dim lValue,iShiftBits:lValue=lValues:iShiftBits=iShiftBitss     If iShiftBits = 0 Then         RShift = lValue         Exit Function     ElseIf iShiftBits = 31 Then         If lValue And &H80000000 Then             RShift = 1         Else             RShift = 0         End If         Exit Function     ElseIf iShiftBits < 0 Or iShiftBits > 31 Then         Err.Raise 6     End If          RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)     If (lValue And &H80000000) Then         RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))     End If End Function Private Function RotateLeft(lValues, iShiftBitss)   dim lValue,iShiftBits:lValue=lValues:iShiftBits=iShiftBitss   RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) End Function Private Function AddUnsigned(lXs, lYs)   Dim lX4,lY4,lX8,lY8,lResult,lX,lY   lX=lXs:lY=lYs     lX8 = lX And &H80000000     lY8 = lY And &H80000000     lX4 = lX And &H40000000     lY4 = lY And &H40000000       lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)       If lX4 And lY4 Then         lResult = lResult Xor &H80000000 Xor lX8 Xor lY8     ElseIf lX4 Or lY4 Then         If lResult And &H40000000 Then             lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8         Else             lResult = lResult Xor &H40000000 Xor lX8 Xor lY8         End If     Else         lResult = lResult Xor lX8 Xor lY8     End If       AddUnsigned = lResult End Function Private Function md5_F(x, y, z)     md5_F = (x And y) Or ((Not x) And z) End Function Private Function md5_G(x, y, z)     md5_G = (x And z) Or (y And (Not z)) End Function Private Function md5_H(x, y, z)     md5_H = (x Xor y Xor z) End Function Private Function md5_I(x, y, z)     md5_I = (y Xor (x Or (Not z))) End Function Private Sub md5_FF(a, b, c, d, x, s, ac)     a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))     a = RotateLeft(a, s)     a = AddUnsigned(a, b) End Sub Private Sub md5_GG(a, b, c, d, x, s, ac)     a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))     a = RotateLeft(a, s)     a = AddUnsigned(a, b) End Sub Private Sub md5_HH(a, b, c, d, x, s, ac)     a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))     a = RotateLeft(a, s)     a = AddUnsigned(a, b) End Sub Private Sub md5_II(a, b, c, d, x, s, ac)     a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))     a = RotateLeft(a, s)     a = AddUnsigned(a, b) End Sub Private Function ConvertToWordArray(sMessages)   Dim lMessageLength,lNumberOfWords,lWordArray(),lBytePosition,lByteCount,lWordCount,sMessage   sMessage=sMessages          Const MODULUS_BITS = 512     Const CONGRUENT_BITS = 448          lMessageLength = Len(sMessage)          lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD)     ReDim lWordArray(lNumberOfWords - 1)          lBytePosition = 0     lByteCount = 0     Do Until lByteCount >= lMessageLength         lWordCount = lByteCount \ BYTES_TO_A_WORD         lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE         lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)         lByteCount = lByteCount + 1     Loop     lWordCount = lByteCount \ BYTES_TO_A_WORD     lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE     lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)     lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)     lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)          ConvertToWordArray = lWordArray End Function Private Function WordToHex(lValue)     Dim lByte,lCount     For lCount = 0 To 3         lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)         WordToHex = WordToHex & Right("0" & Hex(lByte), 2)     Next End Function

Public Function md5(sMessages,sSort)   dim sMessage:sMessage=sMessages     m_lOnBits(0) = CLng(1)     m_lOnBits(1) = CLng(3)     m_lOnBits(2) = CLng(7)     m_lOnBits(3) = CLng(15)     m_lOnBits(4) = CLng(31)     m_lOnBits(5) = CLng(63)     m_lOnBits(6) = CLng(127)     m_lOnBits(7) = CLng(255)     m_lOnBits(8) = CLng(511)     m_lOnBits(9) = CLng(1023)     m_lOnBits(10) = CLng(2047)     m_lOnBits(11) = CLng(4095)     m_lOnBits(12) = CLng(8191)     m_lOnBits(13) = CLng(16383)     m_lOnBits(14) = CLng(32767)     m_lOnBits(15) = CLng(65535)     m_lOnBits(16) = CLng(131071)     m_lOnBits(17) = CLng(262143)     m_lOnBits(18) = CLng(524287)     m_lOnBits(19) = CLng(1048575)     m_lOnBits(20) = CLng(2097151)     m_lOnBits(21) = CLng(4194303)     m_lOnBits(22) = CLng(8388607)     m_lOnBits(23) = CLng(16777215)     m_lOnBits(24) = CLng(33554431)     m_lOnBits(25) = CLng(67108863)     m_lOnBits(26) = CLng(134217727)     m_lOnBits(27) = CLng(268435455)     m_lOnBits(28) = CLng(536870911)     m_lOnBits(29) = CLng(1073741823)     m_lOnBits(30) = CLng(2147483647)          m_l2Power(0) = CLng(1)     m_l2Power(1) = CLng(2)     m_l2Power(2) = CLng(4)     m_l2Power(3) = CLng(8)     m_l2Power(4) = CLng(16)     m_l2Power(5) = CLng(32)     m_l2Power(6) = CLng(64)     m_l2Power(7) = CLng(128)     m_l2Power(8) = CLng(256)     m_l2Power(9) = CLng(512)     m_l2Power(10) = CLng(1024)     m_l2Power(11) = CLng(2048)     m_l2Power(12) = CLng(4096)     m_l2Power(13) = CLng(8192)     m_l2Power(14) = CLng(16384)     m_l2Power(15) = CLng(32768)     m_l2Power(16) = CLng(65536)     m_l2Power(17) = CLng(131072)     m_l2Power(18) = CLng(262144)     m_l2Power(19) = CLng(524288)     m_l2Power(20) = CLng(1048576)     m_l2Power(21) = CLng(2097152)     m_l2Power(22) = CLng(4194304)     m_l2Power(23) = CLng(8388608)     m_l2Power(24) = CLng(16777216)     m_l2Power(25) = CLng(33554432)     m_l2Power(26) = CLng(67108864)     m_l2Power(27) = CLng(134217728)     m_l2Power(28) = CLng(268435456)     m_l2Power(29) = CLng(536870912)     m_l2Power(30) = CLng(1073741824)     Dim x,k,AA,BB,CC,DD,a,b,c,d          Const S11 = 7     Const S12 = 12     Const S13 = 17     Const S14 = 22     Const S21 = 5     Const S22 = 9     Const S23 = 14     Const S24 = 20     Const S31 = 4     Const S32 = 11     Const S33 = 16     Const S34 = 23     Const S41 = 6     Const S42 = 10     Const S43 = 15     Const S44 = 21     x = ConvertToWordArray(sMessage)          a = &H67452301     b = &HEFCDAB89     c = &H98BADCFE     d = &H10325476     For k = 0 To UBound(x) Step 16         AA = a         BB = b         CC = c         DD = d              md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478         md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756         md5_FF c, d, a, b, x(k + 2), S13, &H242070DB         md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE         md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF         md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A         md5_FF c, d, a, b, x(k + 6), S13, &HA8304613         md5_FF b, c, d, a, x(k + 7), S14, &HFD469501         md5_FF a, b, c, d, x(k + 8), S11, &H698098D8         md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF         md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1         md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE         md5_FF a, b, c, d, x(k + 12), S11, &H6B901122         md5_FF d, a, b, c, x(k + 13), S12, &HFD987193         md5_FF c, d, a, b, x(k + 14), S13, &HA679438E         md5_FF b, c, d, a, x(k + 15), S14, &H49B40821              md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562         md5_GG d, a, b, c, x(k + 6), S22, &HC040B340         md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51         md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA         md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D         md5_GG d, a, b, c, x(k + 10), S22, &H2441453         md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681         md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8         md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6         md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6         md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87         md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED         md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905         md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8         md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9         md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A                      md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942         md5_HH d, a, b, c, x(k + 8), S32, &H8771F681         md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122         md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C         md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44         md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9         md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60         md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70         md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6         md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA         md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085         md5_HH b, c, d, a, x(k + 6), S34, &H4881D05         md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039         md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5         md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8         md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665              md5_II a, b, c, d, x(k + 0), S41, &HF4292244         md5_II d, a, b, c, x(k + 7), S42, &H432AFF97         md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7         md5_II b, c, d, a, x(k + 5), S44, &HFC93A039         md5_II a, b, c, d, x(k + 12), S41, &H655B59C3         md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92         md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D         md5_II b, c, d, a, x(k + 1), S44, &H85845DD1         md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F         md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0         md5_II c, d, a, b, x(k + 6), S43, &HA3014314         md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1         md5_II a, b, c, d, x(k + 4), S41, &HF7537E82         md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235         md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB         md5_II b, c, d, a, x(k + 9), S44, &HEB86D391              a = AddUnsigned(a, AA)         b = AddUnsigned(b, BB)         c = AddUnsigned(c, CC)         d = AddUnsigned(d, DD)     Next          if sSort="short" then       md5=LCase(WordToHex(b) & WordToHex(c))     elseif sSort="long" then       md5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))     else       md5=sMessage     end if End Function Rem 过滤SQL非法字符 function checkStr(str) if isnull(str) then checkStr = "" exit function  end if checkStr=replace(str,"'","’") end function

再次顶起

上一篇:求高效分页方案 20fredrickhu]
下一篇:sql语句的优化问题 20sed0sukan]

相关文章

相关评论