解密Multipass

时间:2014-05-31 08:28:29

标签: php multipass

我想使用Multipass在两个PHP网站之间实现SSO。我找到了一个在以下链接中生成多通道的函数:

https://github.com/rps-repo/Redmine-PHP-MultiPass/blob/master/multipass.php

我使用以下函数生成多遍:

function gen_multipass($data, $site_key, $api_key)
{
$salted = $api_key . $site_key;
$hash = hash('sha1', $salted, true);
$saltedHash = substr($hash, 0, 16);
$iv = "OpenSSL for Ruby";
// double XOR first block
for ($i = 0; $i < 16; $i++)
{
    $data[$i] = $data[$i] ^ $iv[$i];
}

$pad = 16 - (strlen($data) % 16);
$data = $data . str_repeat(chr($pad), $pad);

$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
mcrypt_generic_init($cipher, $saltedHash, $iv);
$encryptedData = mcrypt_generic($cipher, $data);
mcrypt_generic_deinit($cipher);
return urlencode(base64_encode($encryptedData));
}

我正在将用户重定向到以下网址:

http://mywebsite.com/?sso=' . $multipass;

$multipass = gen_multipass($data, $site_key, $api_key);

http://mywebsite.com/我获取了查询字符串值,即$_GET['sso']。现在我该如何从这个编码的多通字符串中获取原始数据?

OR

有没有更好的方法在两个PHP网站之间实现SSO?

0 个答案:

没有答案