У меня есть эта функция, и я попытался преобразовать ее в ruby 1.9.3 (для использования на ruby on rails 3.2.13), но я не могу получить тот же хеш, что и эта функция php возвращается.Преобразование этой функции из php в ruby
это то, что я использую в рубине до сих пор:
keypair = OpenSSL::PKey::RSA.new(File.open(Rails.root.join('sec', 'private_key.pem')))
@encrypted_string = keypair.sign(OpenSSL::Digest::MD5.new, @data)
@encrypted_string = Base64.encode64(@encrypted_string)
Это функция в PHP:
function SignData($text, $privateKeyFile) {
$private_cert = $privateKeyFile;
$f = fopen($private_cert,"r");
if($f)
$private_key = fread($f, filesize($private_cert));
else
return "";
fclose($f);
$private_key = openssl_get_privatekey($private_key);
if(openssl_private_encrypt(md5($text), $crypt_text, $private_key))
{
base64_url_encode($crypt_text) . "\n";
}
return "";
}
Это хэш возвращается в PHP:
xJCl3YZVEkXjt_pTPHl9FjpebpDcdMtgZzGFo0LsO_PFyQ8lwdUpKxR_XhK1DGfywVr4 -hPxtDqSOHMcp7fM-eYK5GqGVasUh80qRiVLjw6Zeh4NPCk1qxsSm4X3gl0sv13dBb5FvDwV6QcLyo7vyNweqUH_Cpq_WmWrNY3px5Y,
Это один я рубина:
DTilW98pHOep/5qc7H + iBYPdbFNZGKWW0c0XFo5YfrWfqKLPzzLTygRQAiFY whVX8 + I0FYAOg3 + QqyH0jpcGaFbSVQefU7gDIfT + tHKqSCKmLZwVQas5SQ3j о + m8V + IV/ZgGuHD0U8dNZwO4zkqJAPMPJFvdOeHJVxb77lCBtNU =
Может быть Мне нужно удалить верхний и нижний колонтитулы в файле .pem?
Вы должны опубликовать свой раздел «решить» в качестве ответа и принять его самостоятельно, таким образом, этот вопрос не будете перечисленные как неотвеченные –