Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Очень интересный вопрос... RSA
Форумы портала PHP.SU » PHP » Программирование на PHP » Очень интересный вопрос... RSA

Страниц (1): [1]
 

1. neatek - 14 Февраля, 2013 - 23:25:36 - перейти к сообщению
Привет всем... вот тут я очень заинтересовался RSA алгоритмом...
Значит я получаю публичный ключ, и остальные параметры на основе которых идет генерация данных... Я тут пытаюсь сделать вход на один сайтик... WebApi

Получил я ответ от сайта вот такой:
CODE (htmlphp):
скопировать код в буфер обмена
  1. {"success":true,"publickey_mod":"B9D964115FF1812408EC786B112C6A1FDEF5A81E66BC05C6649B91D3FA86F2DE3E89BF0869D3DE94540E7E7ED84F7FDE3312D9B2C8EC205F1C835EE39DACDFDFDF1C9A48D7AB5643A3357A0D3D20DFAEF1B14954BF5709B8DC735D398BA8C5ED408ADABEE47BCE9295D12C0441E6999E850BFDEDB5B44841A2C068535C208A7663482FE02513B31ADB857D364355D8D555C8C30EE1921CF19F52B8B559A241E53E0CFCB876545AED3A630632C646C72F45ECEBF266007CDA8DB88FDB9F77F7160BEEBE0BC27378F1E47546CBF06FC3A84ECD1661125794B1EFBE37A6DA18E826E33A6DBD32B85F8ADDFC2C09C95F17E9E790028A8DA3595AD37F97C785FD21AD","publickey_exp":"010001","timestamp":"72131850000"}


По всей видимости параметры RSA.
Далее я знаю что делать, но написано это на C# или C++...

PHP:
скопировать код в буфер обмена
  1.  
  2. //RSA Encryption
  3. RSACryptoServiceProvider rsa = new RSACryptoServiceProvider ();
  4. RSAParameters rsaParameters = new RSAParameters ();
  5. rsaParameters.Exponent = HexToByte (rsaJSON.publickey_exp); // это экспонента чтоли? которую я получил выше
  6. rsaParameters.Modulus = HexToByte (rsaJSON.publickey_mod); // это публичный ключ который я получил выше
  7. rsa.ImportParameters (rsaParameters);
  8. byte[] bytePassword = Encoding.ASCII.GetBytes (password); // пароль задан
  9. byte[] encodedPassword = rsa.Encrypt (bytePassword, false); // это вытекает из предыдущего
  10. string encryptedBase64Password = Convert.ToBase64String (encodedPassword); // это вытекает из предыдущего

Помогите это реализовать в PHP, буду рад помощи.
По сути там идет сама генерация всего... Вот бы помочь мне с этим)
Заранее кто ответит спасибо Улыбка

Вот интересное: http://phpseclib[dot]sourceforge[dot]net/
(Добавление)
взял http://phpseclib[dot]sourceforge[dot]net
попробовал:
PHP:
скопировать код в буфер обмена
  1.  
  2. $rsa = new Crypt_RSA();
  3. $rsa->loadKey(array('modulus' => $modulus, 'exponent' => $exponent), CRYPT_RSA_PUBLIC_FORMAT_PKCS1);
  4. var_dump($rsa->encrypt("password"));
  5.  


не получилось. "bool(false)".

 

Powered by ExBB FM 1.0 RC1