庆祝在java\asp\asp.net间登录时的md5问题解决,散分
目前项目在单点登录时,在二个asp.net应用\一个asp\一堆java和php 间传用户登录信息。擦啊,我做java到.net和asp的接口。
对方传来明文的密码。比如dddddd,数据库里是java md5 hash过的串,mArCF8a1Hn3EEEC+we3+yA==
尼玛,asp.net 中的FormsAuthentication.HashPasswordForStoringInConfigFile MD5 得到的是
980AC217C6B51E7DC41040BEC1EDFEC8
16进制的。
尼玛,asp中的MD5得到的是
c6b51e7dc41040be
16进制的 9~25位
尼玛,java中的MD5传来的这
mArCF8a1Hn3EEEC+we3+yA==
是base64的
尼玛,我用c# MD5 base64 写了个这
static public string GetMD5Str(string inp_Str)
{
HashAlgorithm algorithm = HashAlgorithm.Create("MD5");
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(inp_Str);
byte[] inArray = algorithm.ComputeHash(bytes);
return Convert.ToBase64String(inArray);
}
能得到mArCF8a1Hn3EEEC+we3+yA== 了
尼玛,asp多少年不用vb语法忘光光,有木有!
我去呀。数据库是oracle的,在oracle上打主意吧。
google到一个dbms_obfuscation_toolkit.md5 (input_string => inp_string)
select dbms_obfuscation_toolkit.md5 (input_string => inp_string)。。。
提示出错,有木有。怎么改都错有没有。
Stack Overflow上尼玛都说可以有没有。
再查,有一老外和我一样悲剧了。丫说这让人发疯。果断stop,我去他pl/sql吧,这不是一oracle9i bug吧?
闲13的上10g上一测,一个样!!!
写function
CREATE OR REPLACE function my_md5(inp_string in varchar) return varchar2
IS
BEGIN
RETURN utl_raw.cast_to_varchar2( utl_encode.base64_encode(utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5 (input_string => inp_string))));
END my_md5;
我去居然通过了.........
尼玛各种神奇有没有。
散分!
[解决办法]
接分。。。。楼主很强大。
[解决办法]
来了来了 早`
[解决办法]
果然够强大呀
[解决办法]