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

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

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

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

31.03.2016, 20:20. Просмотров 774. Ответов 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(). Как мне это исправить??? Помогите пожалуйста!

Спасибо за внимание!
Лучшие ответы (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 При нажатии на кнопку выходит ошибка "Attempting to invoke method on a null object reference"
Android "Ошибка при синтаксическом анализе пакета" при скачивании файла
При компиляции вылазит ошибка Installation error: "INSTALL_FAILED_CPU_ABI_INCOMPATIBLE" Android
Ошибка "unknown android-api-level-9" при установке admob в eclipse Basic4Android
Android Ошибка при создании проекта "invalid LOC header (bad signature)"
Android "В приложении произошла ошибка" при нажатии на кнопку перехода на какую-либо активность
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
31.03.2016, 21:05     Ошибка "Method call expected" при шифровании RSA #2
Kubson,
Java
1
decryptMessage.getBytes()
.
Лишние скобки
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
01.04.2016, 20:17  [ТС]     Ошибка "Method call expected" при шифровании RSA #3
YuraAAA, я убрал скобки, но ничего не изменилось
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.04.2016, 20:37     Ошибка "Method call expected" при шифровании RSA #4
Kubson, ну покажите что получилось
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 09:51  [ТС]     Ошибка "Method call expected" при шифровании RSA #5
YuraAAA, я ж говорю, ничего не изменилось: все та же ошибка на том же месте. Новых ошибок не прибавилось.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
02.04.2016, 11:34     Ошибка "Method call expected" при шифровании RSA #6
тебя ведь попросили показать код после того как убрал скобки
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 13:59  [ТС]     Ошибка "Method call expected" при шифровании RSA #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));
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
02.04.2016, 14:01     Ошибка "Method call expected" при шифровании RSA #8
вообще не читаешь что пишут люди?
где там убраны скобки как предложил YuraAAA ?
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
02.04.2016, 14:14     Ошибка "Method call expected" при шифровании RSA #9
Паблито, он убрал у getBytes метода скобки

Добавлено через 21 секунду
Kubson,
Цитата Сообщение от Kubson Посмотреть сообщение
decryptMessage.getBytes()
должно быть так
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 16:09  [ТС]     Ошибка "Method call expected" при шифровании RSA #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);

Как же мне ее исправить?..
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
02.04.2016, 17:21     Ошибка "Method call expected" при шифровании RSA #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Kubson,
Цитата Сообщение от Kubson Посмотреть сообщение
BigInteger java.math.BigInteger.modInverse(java.math.BigInteger)' on a null object reference
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2016, 18:46     Ошибка "Method call expected" при шифровании RSA
Еще ссылки по теме:
При эмулировании вместо надписи "Hello world" отображается "android" Android
Android При запуске приложения на Android оно крашится и вылетает с ошибкой "В приложении %название% произошла ошибка"
Ошибка "Gradle"MyApplication" projectrefresh failed Android
Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" Android
Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов Android

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

Или воспользуйтесь поиском по форуму:
Kubson
-24 / 2 / 0
Регистрация: 17.07.2014
Сообщений: 253
02.04.2016, 18:46  [ТС]     Ошибка "Method call expected" при шифровании RSA #12
YuraAAA, спасибо большое!
Yandex
Объявления
02.04.2016, 18:46     Ошибка "Method call expected" при шифровании RSA
Ответ Создать тему
Опции темы

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