使用MD5密码(XQuery)将用户登录到eXist-db

时间:2013-06-20 15:13:36

标签: md5 xquery exist-db xquery-3.0

我需要使用XQuery将用户登录到eXist-db。我当然可以使用这段代码:

xquery version "3.0";

declare namespace exist = "http://exist.sourceforge.net/NS/exist"; 
declare namespace request="http://exist-db.org/xquery/request";
declare namespace xmldb="http://exist-db.org/xquery/xmldb";
declare option exist:serialize "method=json media-type=text/javascript";

let $userName := request:get-parameter("userName", ()) 
let $hash := request:get-parameter("hash", ()) 
let $login := xmldb:authenticate('/db', $userName, $hash)
return
    <ajax-response>
        <success>{$login}</success>
        <username>{$userName}</username>
    </ajax-response>

问题是,由于我收到了来自其他服务的密码和用户名这一事实,我收到的是用MD5加密的哈希表格(因为它们无法通过服务明确地传递给另一个服务)。

xmldb:authenticate函数需要密码才能清除。我该如何解决这个问题?任何的想法?有没有办法在不使用authenticate功能的情况下在eXist-db中“手动”登录?

1 个答案:

答案 0 :(得分:1)

不,这是不可能的:eXist-db不能在身份验证功能上使用哈希值,因为MD5不安全会带来安全风险。此外,eXist-db内部不使用MD5来散列密码,因此验证密码会很困难(不可能匹配两种不同的散列技术)

遗憾的是,无法使用标准功能解决此问题。