日期:2014-05-17  浏览次数:20480 次

已知函数返回值,求函数传入值? sql

create function [dbo].[MD5](@value varchar(300))
returns varchar(32) 
as 
begin 
 return UPPER(right(sys.fn_VarBinToHexStr(hashbytes('MD5',@value)),32))
end 


-- 调用此函数返回  516420F993E2BD8BBC2C189269B80B60
-- 请问 @value 传入的时候是什么???

------解决方案--------------------
这个涉及对 "MD5" 解密,应该是做不到吧
------解决方案--------------------
呵呵,想法很好

但是数学上来说,并不是所有的函数都有反函数,你遇到的正好是这类函数,否则着函数怎么用来加密,人人可以破解了

------解决方案--------------------
这个函数是对传入参数进行md5加密,并且返回加密后的值,以字符串形式呈现
该函数为标量函数,所以可以用exec执行
exec [dbo].[MD5]('123456')
或者
select [dbo].[MD5]('123456')
select [dbo].[MD5]('列名') from tb
------解决方案--------------------
1/5 = 0  2/5 = 0 你能知道输入的是1还是2吗?或者是3还是4