[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кто работал с RSA на PHP
Sylex
Добрый день!)

Кто-нить работал с phpseclib ? (http://phpseclib.sourceforge.net/)

<?php
include 'Crypt/RSA.php';
$rsa = new Crypt_RSA();
$z = $rsa->createKey(); // генерим ключи
$plaintext = 'text for crypting !'; // текст для шифрования

$rsa->loadKey($z['publickey']); // загружаем публ. ключ
$ciphertext = $rsa->encrypt($plaintext); // шифрование

$rsa->loadKey($z['privatekey']); // загружаем закр. ключ
echo $rsa->decrypt($ciphertext); // дешифровка обратно


Всё работает, всё ок.

Вопрос в следующем, при распечатке ключей $z['publickey'] & $z['privatekey'] - они хранятся в формате:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ZWfaQQ9IdS6T83db2k01DW6D
KFPbaWjrAyBgtPbMl+2giN4uJQNcKNL3EF2NXucxIET9RCCfJdfAzF5IZgnVfo6T
/yaz28+YXuCnyM+ryVi70lr2DsqGPlIzr0VjpYEgS8LkUTDIDz/DEkWpc3MTPbkC
ZH4va1t6MSgNpBImBwIDAQAB
-----END PUBLIC KEY-----


base64 я так понимаю, а мне надо хранить ключи именно в hex-формате и в базе.

Как конвертировать правильно эту шнягу в hex формат?

_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.
vital
И нет, это не base64, это ключи в формате ключей.



function strToHex($string){
$hex = '';
for ($i=0; $i<strlen($string); $i++){
$ord = ord($string[$i]);
$hexCode = dechex($ord);
$hex .= substr('0'.$hexCode, -2);
}
return strToUpper($hex);
}
function hexToStr($hex){
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2){
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}


_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Гость_Илья
Всем привет!
К сожалению, не могу разобраться:
<?php
include 'Crypt/RSA.php';
$rsa = new Crypt_RSA();
$z = $rsa->createKey(); // генерим ключи
$plaintext = 'text for crypting !'; // текст для шифрования

$rsa->loadKey($z['publickey']); // загружаем публ. ключ
$ciphertext = $rsa->encrypt($plaintext); // шифрование

$rsa->loadKey($z['privatekey']); // загружаем закр. ключ
echo $rsa->decrypt($ciphertext); // дешифровка обратно

Выдаёт

Warning: include_once(Math/BigInteger.php) [function.include-once]: failed to open stream: No such file or directory in Z:\home\localhost\www\sets\lbs\Crypt\RSA.php on line 497

Warning: include_once() [function.include]: Failed opening 'Math/BigInteger.php' for inclusion (include_path='.;C:\php\pear') in Z:\home\localhost\www\sets\lbs\Crypt\RSA.php on line 497

Fatal error: Class 'Math_BigInteger' not found in Z:\home\localhost\www\sets\lbs\Crypt\RSA.php on line 554
А если скопировать папку Math в папку к rsa.php, то вообще браузер зависает.
Пожалуйста, помогите.
Игорь_Vasinsky
Цитата
Warning: include_once(Math/BigInteger.php) [function.include-once]: failed to open stream: No such file or directory in Z:\home\localhost\www\sets\lbs\Crypt\RSA.php

Цитата
Fatal error: Class 'Math_BigInteger' not found in Z:\home\localhost\www\sets\lbs\Crypt\RSA.php on line 554


это для кого выводиться?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Гость_Илья
Ну в первый раз ладно, код не посмотрел. Но когда файл-то куда просят скопируешь, почему браузер ничего не выдаёт, а только бесконечно грузит страницу?

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.