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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
#1

Ошибка "Method call expected" при шифровании RSA - Программирование Android

31.03.2016, 20:20. Просмотров 951. Ответов 11
Метки нет (Все метки)

Java
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
private final static BigInteger one      = new BigInteger("1");
    private final static SecureRandom random = new SecureRandom();
 
    private BigInteger privateKey;
    private BigInteger publicKey;
    private BigInteger modulus;
 
    public void init(int N) {
        BigInteger p = BigInteger.probablePrime(N/2, random);
        BigInteger q = BigInteger.probablePrime(N/2, random);
        BigInteger phi = (p.subtract(one)).multiply(q.subtract(one));
 
        modulus    = p.multiply(q);
 
        privateKey = publicKey.modInverse(phi);
    }
 
    public void setPrivateKey(BigInteger privateKey) {
        this.privateKey = privateKey;
    }
 
    public void setPublicKey(BigInteger publicKey) {
        this.publicKey = publicKey;
    }
 
    public void setModulus(BigInteger modulus) {
        this.modulus = modulus;
    }
 
    public BigInteger getPrivateKey() {
        return privateKey;
    }
 
    public BigInteger getPublicKey() {
        return publicKey;
    }
 
    public BigInteger getModulus() {
        return modulus;
    }
 
    // generate an N-bit (roughly) public and private key
 
             // common value in practice = 2^16 + 1
 
    BigInteger encrypt(BigInteger message) {
        return message.modPow(publicKey, modulus);
    }
 
    BigInteger decrypt(BigInteger encrypted) {
        return encrypted.modPow(privateKey, modulus);
    }
 
    public String toString() {
        String s = "";
        s += "public  = " + publicKey  + "\n";
        s += "private = " + privateKey + "\n";
        s += "modulus = " + modulus;
 
        return s;
    }
protected void onCreate(Bundle savedInstanceState) {
        int N = 1024; //количество бит для генерации RSA ключей
        WhatTheHellAreYouDoingInMyCode rsa = new WhatTheHellAreYouDoingInMyCode();
        rsa.init(N);
        BigInteger message = new BigInteger("Привет Мир! I love you!".getBytes());
        rsa.setModulus(modulus); //используем modulus, который получили от сервера
        rsa.setPublicKey(publicKey); //используем publicKey, который получили от сервера
        BigInteger encryptMessage = rsa.encrypt(message);
        BigInteger decryptMessage = rsa.decrypt(encryptMessage);
        System.out.println( new String(decryptMessage().getBytes()));
В последней строчке кода ошибка "Method call expected" и красным подчеркнуто decryptMessage(). Как мне это исправить??? Помогите пожалуйста!

Спасибо за внимание!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2016, 20:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка "Method call expected" при шифровании RSA (Программирование Android):

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...

При нажатии на кнопку выходит ошибка "Attempting to invoke method on a null object reference" - Программирование Android
Доброго дня! Есть вот этот код. При нажатии на кнопку Add выдает Attempting to invoke interface method java.sql.Statement...

"Ошибка при синтаксическом анализе пакета" при скачивании файла - Программирование Android
Пытаюсь сделать обновление в своем приложении. Должно быть так: скачивается файл приложения и устанавливается. только вот скачивается он...

При компиляции вылазит ошибка Installation error: "INSTALL_FAILED_CPU_ABI_INCOMPATIBLE" - Программирование Android
Здравствуйте, пытаюсь скомпилировать приложение на библиотеке LibGdx использую Genymotion и при компиляции вылазит ошибка(Вот лог): The...

Ошибка при создании проекта "invalid LOC header (bad signature)" - Программирование Android
Здравствуйте! При создании нового проекта в Android Studio возникает ошибка Что это и что с этим делать?

"В приложении произошла ошибка" при нажатии на кнопку перехода на какую-либо активность - Программирование Android
Нужно было несколько функций в одно приложение соединить..Отдельно каждая из них как отдельная программа работает - запускается.. Создав...

11
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
31.03.2016, 21:05 #2
Kubson,
Java
1
decryptMessage.getBytes()
.
Лишние скобки
1
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
01.04.2016, 20:17  [ТС] #3
YuraAAA, я убрал скобки, но ничего не изменилось
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.04.2016, 20:37 #4
Kubson, ну покажите что получилось
0
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 09:51  [ТС] #5
YuraAAA, я ж говорю, ничего не изменилось: все та же ошибка на том же месте. Новых ошибок не прибавилось.
0
Pablito
2505 / 1989 / 619
Регистрация: 12.05.2014
Сообщений: 6,943
Завершенные тесты: 1
02.04.2016, 11:34 #6
тебя ведь попросили показать код после того как убрал скобки
0
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 13:59  [ТС] #7
Паблито,
Java
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
private final static BigInteger one      = new BigInteger("1");
    private final static SecureRandom random = new SecureRandom();
 
    private BigInteger privateKey;
    private BigInteger publicKey;
    private BigInteger modulus;
 
    public void init(int N) {
        BigInteger p = BigInteger.probablePrime(N/2, random);
        BigInteger q = BigInteger.probablePrime(N/2, random);
        BigInteger phi = (p.subtract(one)).multiply(q.subtract(one));
 
        modulus    = p.multiply(q);
 
        privateKey = publicKey.modInverse(phi);
    }
 
    public void setPrivateKey(BigInteger privateKey) {
        this.privateKey = privateKey;
    }
 
    public void setPublicKey(BigInteger publicKey) {
        this.publicKey = publicKey;
    }
 
    public void setModulus(BigInteger modulus) {
        this.modulus = modulus;
    }
 
    public BigInteger getPrivateKey() {
        return privateKey;
    }
 
    public BigInteger getPublicKey() {
        return publicKey;
    }
 
    public BigInteger getModulus() {
        return modulus;
    }
 
    // generate an N-bit (roughly) public and private key
 
             // common value in practice = 2^16 + 1
 
    BigInteger encrypt(BigInteger message) {
        return message.modPow(publicKey, modulus);
    }
 
    BigInteger decrypt(BigInteger encrypted) {
        return encrypted.modPow(privateKey, modulus);
    }
 
    public String toString() {
        String s = "";
        s += "public  = " + publicKey  + "\n";
        s += "private = " + privateKey + "\n";
        s += "modulus = " + modulus;
 
        return s;
    }
protected void onCreate(Bundle savedInstanceState) {
        int N = 1024; //количество бит для генерации RSA ключей
        WhatTheHellAreYouDoingInMyCode rsa = new WhatTheHellAreYouDoingInMyCode();
        rsa.init(N);
        BigInteger message = new BigInteger("Привет Мир! I love you!".getBytes());
        rsa.setModulus(modulus); //используем modulus, который получили от сервера
        rsa.setPublicKey(publicKey); //используем publicKey, который получили от сервера
        BigInteger encryptMessage = rsa.encrypt(message);
        BigInteger decryptMessage = rsa.decrypt(encryptMessage);
        System.out.println( new String(decryptMessage().getBytes));
0
Pablito
2505 / 1989 / 619
Регистрация: 12.05.2014
Сообщений: 6,943
Завершенные тесты: 1
02.04.2016, 14:01 #8
вообще не читаешь что пишут люди?
где там убраны скобки как предложил YuraAAA ?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
02.04.2016, 14:14 #9
Паблито, он убрал у getBytes метода скобки

Добавлено через 21 секунду
Kubson,
Цитата Сообщение от Kubson Посмотреть сообщение
decryptMessage.getBytes()
должно быть так
0
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 16:09  [ТС] #10
Ах да, спасибо что помогли с этим, но теперь возникла новая ошибка: Error144, 54) error: cannot find symbol method getBytes()

Добавлено через 1 час 2 минуты
Я исправил ее, и вновь появилась новая 04-02 16:08:28.791 5411-5411/spsoft.passwordgenerator E/AndroidRuntime: FATAL EXCEPTION: main
Process: spsoft.passwordgenerator, PID: 5411
java.lang.RuntimeException: Unable to start activity ComponentInfo{spsoft.passwordgenerator/spsoft.passwordgenerator.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.math.BigInteger java.math.BigInteger.modInverse(java.math.BigInteger)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2790)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2855)
at android.app.ActivityThread.access$900(ActivityThread.java:181)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6117)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.math.BigInteger java.math.BigInteger.modInverse(java.math.BigInteger)' on a null object reference
at spsoft.passwordgenerator.MainActivity.init(MainActivity.java:70)
at spsoft.passwordgenerator.MainActivity.onCreate(MainActivity.java:138)
at android.app.Activity.performCreate(Activity.java:6374)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2743)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2855)*
at android.app.ActivityThread.access$900(ActivityThread.java:181)*
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)*
at android.os.Handler.dispatchMessage(Handler.java:102)*
at android.os.Looper.loop(Looper.java:145)*
at android.app.ActivityThread.main(ActivityThread.java:6117)*
at java.lang.reflect.Method.invoke(Native Method)*
at java.lang.reflect.Method.invoke(Method.java:372)*
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)*
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)*
Ошибка здесь: privateKey = publicKey.modInverse(phi);

Как же мне ее исправить?..
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
02.04.2016, 17:21 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Kubson,
Цитата Сообщение от Kubson Посмотреть сообщение
BigInteger java.math.BigInteger.modInverse(java.math.BigInteger)' on a null object reference
1
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 18:46  [ТС] #12
YuraAAA, спасибо большое!
0
02.04.2016, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2016, 18:46
Привет! Вот еще темы с ответами:

При эмулировании вместо надписи "Hello world" отображается "android" - Программирование Android
Привет форумчане! Я только-только начинал программировать на андроиде. Поставил среду, все настроил как на google.developers . Когда...

При запуске приложения на Android оно крашится и вылетает с ошибкой "В приложении %название% произошла ошибка" - Программирование Android
Как посмотреть логи ошибки? Игра просто была установлена, она не разрабатывалась мной.

Ошибка "Gradle"MyApplication" projectrefresh failed - Программирование Android
Всем доброго вечера. Только начинаю писать под андроид, и на одном из первых этапов возникла такая ошибка. Создал проект (эмулятор не...

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" - Программирование Android
Ребят, всем привет! накидайте какие-нить идеи по реализации ситуация такая есть таблицы - "списки_жанров", "фильмы", "режиссеры" мне...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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