日期:2014-05-18  浏览次数:20425 次

庆祝在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;

我去居然通过了.........

尼玛各种神奇有没有。

散分!


------解决方案--------------------
C# code
接分。。。。楼主很强大。

------解决方案--------------------
来了来了 早`
------解决方案--------------------
果然够强大呀
------解决方案--------------------
探讨

果然够强大呀

------解决方案--------------------

------解决方案--------------------
要得。。。
------解决方案--------------------
探讨

果然够强大呀

------解决方案--------------------


------解决方案--------------------
呵呵,厉害,我是来接分的
------解决方案--------------------
不懂Java的路过
------解决方案--------------------
LZ说的很明白,接分。
------解决方案--------------------
LZ强得一B啊!
------解决方案--------------------
楼主牛 小弟佩服 我是来拿分的
------解决方案--------------------
裸奔 路过此处驻留!
------解决方案--------------------
牛人啊。。。。。就是不明白你的单点登录是怎么设计的??
我设计时只是将一个令牌加一些电脑的信息存储在SSO服务器,每个网站来访问都是看有没有cookie令牌,没有就转登录,有就取回令牌,然后再用令牌去服务获取对应的账号信息,至于什么加密什么权限的还是在原有网站,所以不应该会存在不同的md5加密问题,因为各个网站的访问机制还是在原系统
------解决方案--------------------
楼主强大
回家抱孩子讲的不错
------解决方案--------------------

很显然 没看懂
------解决方案--------------------