Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
#1

Как возвести текст в степень? - C++

15.04.2009, 22:31. Просмотров 2498. Ответов 16
Метки нет (Все метки)

Мне надо возвести текст в степень(для программы с использованием RSA), подскажите пожалуйста, как это можно сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
16.04.2009, 00:27     Как возвести текст в степень? #2
Цитата Сообщение от Bazan Посмотреть сообщение
Мне надо возвести текст в степень(для программы с использованием RSA), подскажите пожалуйста, как это можно сделать?
Что то я не могу понять как это вообще ("string"^2 = ?) .
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
16.04.2009, 00:54     Как возвести текст в степень? #3
Видимо вы плохо читали описание алгоритма. Или само описание плохое. Я вообще себе слабо представляю как можно умножить буквы на буквы, кроме как их численное представление перемножить.
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
16.04.2009, 10:03     Как возвести текст в степень? #4
Видимо автор перепутал знак логического исключающего ИЛИ(XOR) со степенью
Alexiski
Любитель давать советы
338 / 130 / 2
Регистрация: 12.01.2009
Сообщений: 511
16.04.2009, 12:15     Как возвести текст в степень? #5
Я так понимаю, речь идет о длинных числах, хранящихся в виде строк.

Существует масса библиотек, предоставляющих такую возможность.
Вот пример
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
16.04.2009, 13:19  [ТС]     Как возвести текст в степень? #6
Цитата Сообщение от Alexiski Посмотреть сообщение
Я так понимаю, речь идет о длинных числах, хранящихся в виде строк.
Речь идет о ТЕКСТЕ

Цитата Сообщение от Humanitis Посмотреть сообщение
Видимо автор перепутал знак логического исключающего ИЛИ(XOR) со степенью
Десяток разных авторов перепутал знаки... верится с трудом...

Цитата Сообщение от ISergey Посмотреть сообщение
Что то я не могу понять как это вообще ("string"^2 = ?) .
Я тоже поэтому и задал тут вопрос... + степень ДАЛЕКО не 2я

Цитата Сообщение от Spo1ler Посмотреть сообщение
Видимо вы плохо читали описание алгоритма. Или само описание плохое. Я вообще себе слабо представляю как можно умножить буквы на буквы, кроме как их численное представление перемножить.
Я тоже задаюсь этим вопросом, но это написано во всех описаниях алгоритма...
C= M^e mod n , где C- зашифрованное сообщение, M- шифруемое сообщение, e- открытый показатель, n- одна из составляющих открытого и частного ключей
Видимо придется перемножать его численное представление... осталось его найти) как это сделать не подскажете?)
darkAngel
Технофашист
214 / 195 / 4
Регистрация: 11.03.2009
Сообщений: 860
16.04.2009, 13:39     Как возвести текст в степень? #7
Ну ты бы сразу говорил, что это алгоритм шифрования. тогда понятно.

Тебе нужно сделать так: разбить строку (где хранится текст) на массив переменных типа char. И дальше возводить код символа в степень. (код символа это число из таблицы ASCII):
Код числа можно узнать так:
C++
1
cout >> IntToStr(char('h'));  // На экран выведится номер числа h (104)
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
16.04.2009, 13:51  [ТС]     Как возвести текст в степень? #8
Цитата Сообщение от darkAngel Посмотреть сообщение
Ну ты бы сразу говорил, что это алгоритм шифрования. тогда понятно.

Тебе нужно сделать так: разбить строку (где хранится текст) на массив переменных типа char. И дальше возводить код символа в степень. (код символа это число из таблицы ASCII):
Код числа можно узнать так:
C++
1
cout >> IntToStr(char('h'));  // На экран выведится номер числа h (104)
А как его узнать в языке С, а не С++?
И как разбить строку на массив?
unStatiK
Заблокирован
16.04.2009, 14:08     Как возвести текст в степень? #9
Цитата Сообщение от Bazan Посмотреть сообщение
А как его узнать в языке С, а не С++?
И как разбить строку на массив?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  char c;
  char str[255];
  c = 'w';
  scanf("%s",str);
  printf("%d\n",c); //узнаем код символа
  printf("%c\n",str[2]); // выводим третий символ строки
  return 0;
}
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
16.04.2009, 14:20  [ТС]     Как возвести текст в степень? #10
Эм теперь операции с массивом проводятся, но после шифрования и расшифрования результат - <NULL> Как это исправить?...
И код символа для всех символов - один...
unStatiK
Заблокирован
16.04.2009, 14:25     Как возвести текст в степень? #11
Пардон ... вам же еще манипуляции с этим кодом нужны , а не только узнать его код

C
1
2
   int k = (int)c; 
  printf("%d\n",k); // узнаем код символа а с переменнрй k делаем все что надо
Так будет корректно работать ...
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
16.04.2009, 14:36  [ТС]     Как возвести текст в степень? #12
unStatiK, почему-то, что-бы я не вводил, код получается 4360768...
unStatiK
Заблокирован
16.04.2009, 14:38     Как возвести текст в степень? #13
Цитата Сообщение от Bazan Посмотреть сообщение
unStatiK, почему-то, что-бы я не вводил, код получается 4360768...
ого ... запость листинг , попробуем разобраться
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
16.04.2009, 14:40  [ТС]     Как возвести текст в степень? #14
Что запостить?
unStatiK
Заблокирован
16.04.2009, 14:41     Как возвести текст в степень? #15
код программы (именуемый листингом)
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
16.04.2009, 14:53  [ТС]     Как возвести текст в степень? #16
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include<stdio.h>
#include <stdlib.h>
 
int e, d, n, p, q,r,i1;
char M,C;
char text[255];
int main()
{
scanf("%d",&p);
scanf("%d",&q);
n=p*q;
vichED(p,q);
scanf("%s",text);
printf("%d\n",text);
shifr(text,e,n);
printf("%s\n",C);
//unshifr(C,d,n);
//printf("%s\n",M);
return 0;
}
 
int shifr(text,e,n)
{
int i,f;
f=(int)text;
C=f;
    for(i=1;i<=e;i++)
{
C=C*f;
printf("%s", C);
}
C=C*n;
return C;
}
 
/*int unshifr(...)
{
*Пока отсутствует
}*/
int vichED(p,q)
{ unsigned int ed;
e=0;
PolE:
e++;
if(e<=1)
goto PolE;
if(e>(p-1)*(q-1))
goto PolE;
if((e%2)==(((p-1)*(q-1))%2))
goto PolE;
if((e%4)==(((p-1)*(q-1))%4))
goto PolE;
if((e%3)==(((p-1)*(q-1))%3))
goto PolE;
if((e%5)==(((p-1)*(q-1))%5))
goto PolE;
if((e%7)==(((p-1)*(q-1))%7))
goto PolE;
if((e%9)==(((p-1)*(q-1))%9))
goto PolE;
if((e%11)==(((p-1)*(q-1))%11))
goto PolE;
d=0;
PolD:
d++;
ed=e*d;
printf("%d, %d\n",e,d);
if(((ed-1)%((p-1)*(q-1)))!=0)
goto PolD;
return e,d;
}
Добавлено через 7 минут 0 секунд
unStatiK, дай аську, думаю там лучше будет общаться)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2009, 14:56     Как возвести текст в степень?
Еще ссылки по теме:

Как возвести 2 в большую степень? C++
C++ Как возвести переменную в степень?
Если введенное число отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат C++
C++ Возвести -1 в степень
C++ Синтаксис C++ - как возвести заданное число в заданную степень

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
unStatiK
Заблокирован
16.04.2009, 14:56     Как возвести текст в степень? #17
отправил номер аськи в личном сообщении
Yandex
Объявления
16.04.2009, 14:56     Как возвести текст в степень?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru