我使用phpfox和userplane,这个函数是从数据库中获取sessionGuid的原始函数是:函数1:
function get_current_online_session_login() {
$oSrvSec = &App::getModuleService('Account', 'Security');
$login = $oSrvSec->getCurrentUserLogin();
$aReq = getRow(App::getT('online_session'), 'online_session_user = "' . $login . '"');
// return $aReq['online_session_login'];
return $aReq['online_session_id'];
}我在它中做了修改,所以它返回了咸散列,但是chat不工作,并显示错误,您没有权限进入聊天。下面是我对这段代码所做的修改:
function get_current_online_session_login() {
$oSrvSec = &App::getModuleService('Account', 'Security');
$login = $oSrvSec->getCurrentUserLogin();
$aReq = getRow(App::getT('online_session'), 'online_session_user = "' . $login . '"');
$salt='waka_waka_shaka_laka_8342394';
// return $aReq['online_session_login'];
$umSar = $aReq['online_session_id'];
$saltedHash = md5($umSar . $salt);
return $saltedHash;
}在这个文件中有两个session_id函数,所以我不知道如何解决这个问题,这里是第二个session_id函数:函数2
function get_user_with_session_id($session_id) {
$session = getRow(App::getT('online_session'), "online_session_id = '$session_id'");
// $session = getRow(App::getT('online_session'), "online_session_login = '$session_id'");
$oSecurityService = &App::getModuleService('Account', 'Security');
$user = $oSecurityService->getUserByName($session['online_session_user']);
return isset($user) ? $user->aData['id'] : null;
}拜托我需要帮助。您可以在我的common.php文件中看到函数1:和函数2:是原始函数,这个函数返回session_id的正常数字,我希望以md5、盐析散列或base_64的形式返回session_id。谢谢
发布于 2012-11-01 07:34:30
首先必须检查crypt()方法是否有MD5支持,然后传递要加密的字符串以及salt,从$1$开始。见PHP.net上的crypt()。
if (CRYPT_MD5 == 1) {
$saltedHash' . crypt($umSar, '$1$waka_wak$') . "\n";
}请注意,对于MD5,salt必须是12个字符长。
发布于 2012-11-01 09:41:23
如果您正在考虑去加密online-session-id,您在function get_current_online_session_login()中加密,这不是md5哈希的目的。
如果你想加密/解密,你可以使用像mcrypt_decrypt,mcrypt_encrypt和base64_encode,base64_decode这样的函数。
示例答案:加密/解密密码
https://stackoverflow.com/questions/13172739
复制相似问题