Программинг Форум для тем связанных с программированием
06.11.2009, 21:44
#1
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Blo0DeX , ну да, как то так, ток не забудь что RSAKey приходит в зашифрованном виде
PS и кстати у mpz_powm есть аналог (mpz_powm_i вроде или чтот в таком духе) для случаев когда e является небольшим числом, а у нас какраз такой случай, этот аналог думаю удобнее и наверно чуть быстрее
__________________
Я здесь практически не появляюсь!, Skype - ikskor
06.11.2009, 21:58
#2
Новичок
Регистрация: 05.11.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 1 спасибку в 1 сообщении
Цитата:
Сообщение от
xkor
PS и кстати у mpz_powm есть аналог (mpz_powm_i вроде или чтот в таком духе) для случаев когда e является небольшим числом
есть mpz_powm_ui, в описании то же самое что и у mpz_powm, что на самом деле не ковырялся, не смотрел....
07.11.2009, 00:25
#3
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Blo0DeX , ну она и делает то же самое, отличается тока типом одного из параметров
__________________
Я здесь практически не появляюсь!, Skype - ikskor
12.11.2010, 18:50
#4
Пользователь
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gmp.h>
int main (int argc, char **argv)
{
//var
char rsakey[16] = {'1','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char* pack = "123AAA45";
printf("pack = %s\n",pack);
printf("rsakey = %s\n",rsakey);
//begin*
// инициализация переменных
mpz_t m, e, d, r;
mpz_init(m);
mpz_init(e);
mpz_init(d);
mpz_init(r);
mpz_init_set_str(m, rsakey, 16);
mpz_init_set_str(d, pack, 16);
//mpz_set_ui(e,65537); один хер.
mpz_init_set_str(e, "65537", 10);
mpz_powm(r, d, e, m);
//mpz_get_str(sR, 16, r);
//char* sR = mpz_get_str(NULL, 16, d);
char sR[5000] = {};
mpz_get_str(sR, 16, r);
int k = strlen(sR);
printf("результат = %s | размер %i\n",sR, k);
mpz_clear(m);
mpz_clear(e);
mpz_clear(d);
mpz_clear(r);
printf("Finish\n");
return 100500; //стопицот
}
13.11.2010, 00:22
#5
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Кислый , это ты к чему решил воскресить прошлогоднюю тему?
__________________
Я здесь практически не появляюсь!, Skype - ikskor
13.11.2010, 13:32
#6
Пользователь
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
да к тому, что она послужила для меня отправной точкой в поиске решения ))
в принципе код рабочий, но смущает вот что: pack и rsakey должны состаять из символов 16й системы счисления.. (т.е. {'0','1','2','3','4','5','6','7','8','9','A','B',' C','D','E','F'}
.
является ли это затруднением ?
учитывая что pack - это 132 байта. при этом как минимум 30 байт (логин и пасс ) могут содержать другие символы
13.11.2010, 14:36
#7
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Цитата:
Сообщение от
Кислый
pack и rsakey должны состаять из символов 16й системы счисления
кому они это должны?
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 17:35 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!