Как бы исправить ошибку синтаксиса, вставив '}', чтобы завершить блок

Python 3.6 полностью переработал байт-код для CPython (он больше не является «байтовым» кодом, это словосочетание, где все коды операций имеют ширину в два байта вместо 1-3).

Неисправность, которую вы видите, происходит в коде py2exe opcode parsing, который, учитывая самую последнюю опубликованную версию py2exe, поддерживает только утверждения для 3.3 и 3.4, не мог знать или поддерживать , новый код кода кода; они даже не были задуманы в то время py2exe. Байт-код часто изменяется малыми способами от версии к версии, которая может сломаться даже Python 3.5 (при условии, что только поддержка 3.3 и 3.4 заявлена ​​явно), но 3.6 на 100% гарантированно сбой.

-2
задан DebanjanB 25 March 2019 в 13:19
поделиться

3 ответа

Вам нужно поставить один } до того, как вы начнете метод public static String encrypt(String dot, SecretKey secretKey), то есть после окончания цикла for

0
ответ дан mohd shoaib 25 March 2019 в 13:19
поделиться

Вы должны поставить один '{' перед методом шифрования, чтобы завершить цикл for.

 public class Join {
        static Cipher cipher;

        @UserFunction
        @Description("example.DES ,, Decryption of any input values.")

        public byte[] DES( @Name("set1") List<String> strings1) {

            for (int i = 0; i < strings1.size(); i++) {
                String dot;
                dot = strings1.get(i);

                KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
                keyGenerator.init(128);
                SecretKey secretKey = keyGenerator.generateKey();
                cipher = Cipher.getInstance("AES");


                String encryptedText = encrypt(dot, secretKey);
                System.out.println("Encrypted Text After Encryption: " + encryptedText);

            }
    }

            public static String encrypt(String dot, SecretKey secretKey)
                    throws Exception {
                byte[] plainTextByte = dot.getBytes();
                cipher.init(Cipher.ENCRYPT_MODE, secretKey);
                byte[] encryptedByte = cipher.doFinal(plainTextByte);
                Base64.Encoder encoder = Base64.getEncoder();
                String encryptedText = encoder.encodeToString(encryptedByte);
                return encryptedText;
            } 


        }
0
ответ дан user10778951 25 March 2019 в 13:19
поделиться

Вы пропустили закрывающую скобку, ваш код не может быть запущен, и если вы добавите его в неправильном месте, вы просто вызовете еще больше проблем в коде. Я предлагаю использовать что-то вроде ЭТОГО:

Редактировать: я никогда не использовал Cipher, по моему предположению, если добавление закрывающей скобки не работает, у вас, скорее всего, есть ошибка в самом коде, и Я рекомендую вам внимательно просмотреть его и проверить на наличие ошибок.

public class Join {


static Cipher cipher;

@UserFunction
@Description("example.DES ,, Decryption of any input values.")

public byte[] DES( @Name("set1") List<String> strings1) {

    for (int i = 0; i < strings1.size(); i++) {
        String dot;
        dot = strings1.get(i);

        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
        keyGenerator.init(128);
        SecretKey secretKey = keyGenerator.generateKey();
        cipher = Cipher.getInstance("AES");


        String encryptedText = encrypt(dot, secretKey);
        System.out.println("Encrypted Text After Encryption: " + encryptedText);

    }


    public static String encrypt(String dot, SecretKey secretKey)
            throws Exception {
        byte[] plainTextByte = dot.getBytes();
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] encryptedByte = cipher.doFinal(plainTextByte);
        Base64.Encoder encoder = Base64.getEncoder();
        String encryptedText = encoder.encodeToString(encryptedByte);
        return encryptedText;
      } 

    }

  }
0
ответ дан Taylor Spark 25 March 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: