Может ли Ubuntu 13.10 использовать QQ International без вина?

Разделите password (a char[]) и salt (a byte[] - 8 байтов, выбранных с помощью SecureRandom, дают хорошую соль - которую не нужно хранить в секрете) с получатель внеполосный. Затем, чтобы получить хороший ключ из этой информации:

/* Derive the key, given password and salt. */
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
KeySpec spec = new PBEKeySpec(password, salt, 65536, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");

Магические числа (которые могут быть определены где-то как константы) 65536 и 256 - это счетчик итераций и размер ключа, соответственно.

Функция получения ключа повторяется, чтобы потребовать значительных вычислительных усилий, и это не позволяет злоумышленникам быстро пробовать много разных паролей. Количество итераций может быть изменено в зависимости от доступных вычислительных ресурсов.

Размер ключа может быть уменьшен до 128 бит, который все еще считается «сильным» шифрованием, но он не дает большой запас прочности, если обнаружены атаки, которые ослабляют AES.

При использовании с надлежащим режимом цепочки блоков один и тот же производный ключ может использоваться для шифрования многих сообщений. В Cipher Block Chaining (CBC) случайный вектор инициализации (IV) генерируется для каждого сообщения, давая различный зашифрованный текст, даже если обычный текст идентичен. CBC может быть не самым безопасным режимом, доступным для вас (см. AEAD ниже); Есть много других режимов с различными свойствами безопасности, но все они используют одинаковый случайный ввод. В любом случае выходные данные каждой операции шифрования представляют собой зашифрованный текст и вектор инициализации:

/* Encrypt the message. */
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secret);
AlgorithmParameters params = cipher.getParameters();
byte[] iv = params.getParameterSpec(IvParameterSpec.class).getIV();
byte[] ciphertext = cipher.doFinal("Hello, World!".getBytes("UTF-8"));

Сохраняют ciphertext и iv. При расшифровке SecretKey регенерируется точно таким же образом, используя пароль с теми же параметрами соли и итерации. Инициализируйте шифр с этим ключом и вектор инициализации, сохраненный с сообщением:

/* Decrypt the message, given derived key and initialization vector. */
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(iv));
String plaintext = new String(cipher.doFinal(ciphertext), "UTF-8");
System.out.println(plaintext);

Java 7 включил поддержку API для режимов шифрования AEAD , и поставщик SunJCE, включенный в дистрибутивы OpenJDK и Oracle, реализует их, начиная с Java 8. Один из этих режимов настоятельно рекомендуется вместо CBC; это защитит целостность данных, а также их конфиденциальность.


A java.security.InvalidKeyException с сообщением «Недопустимый размер ключа или параметры по умолчанию» означает, что стойкость криптографии ограничена ; файлы политики неограниченной юрисдикции находятся не в правильном месте. В JDK их следует поместить в ${jdk}/jre/lib/security

На основании описания проблемы, похоже, что файлы политики установлены неправильно. Системы могут легко иметь несколько сред выполнения Java; перепроверьте, чтобы убедиться, что используется правильное местоположение.

0
задан 05.05.2020, 21:59

2 ответа

qq больше не поддерживается в Linux. Qq для Linux никогда не выходил из бета-версии и в его нынешнем виде вообще не работает.

Лучше всего использовать qq в Linux - использовать дистрибутивы на китайском языке, Linux Deepin (в настоящее время версия 2014) или Ubuntu Kylin 14.04 и выше.

Эти 2 дистрибутива имеют рабочую версию wineqq для ПК, которая работает нормально, но я до сих пор не смог заставить работать видео или аудио на любой системе. Либо то, либо web qq (который отстой) - ваши единственные варианты на данный момент для самого полного опыта qq, доступного в настоящее время.

0
ответ дан 05.05.2020, 22:00

Да, есть бета-версия международного пакета qq, доступная для загрузки в Linux.

  • Загрузите файл .deb из здесь .

  • Перейдите в каталог, куда был загружен файл .deb, используя cd.

  • Установите файл .deb, выполнив следующую команду:

    sudo dpkg -i <packagename>.deb
    

Как подключиться к сети QQ Messenger?

0
ответ дан 05.05.2020, 22:01
  • 1
    Я can' t устанавливают его, потому что существует что-то не так. msy@msy-Inspiron-One-2020: ~/дё ‹пароль иЅЅ$ sudo dpkg-i linuxqq_v1.0.2-beta1_i386.deb [sudo] для msy: dpkg: ошибка, обрабатывающая linuxqq_v1.0.2-beta1_i386.deb (-установка): парсинг файла '/var/lib/dpkg/tmp.ci/control' около строки 7 пакетов ' linuxqq': €жњке-з‰ — зк ¦ дёІ v1.0.2-beta1 дё-жњ%й” ™иЇЇ: номер версии не запускает с ењЁе¤ цифры „зђ†ж — ¶жњ‰й” ™иЇЇеЏ‘з” џпјљ linuxqq_v1.0.2-beta1_i386.deb – Eric 05.05.2020, 22:01
  • 2
    просто переименуйте файл в linuxqq.deb и затем попытайтесь установить его. Если какая-либо ошибка происходит, отправьте ее в pastebin и затем предоставьте ссылку здесь. – txwikinger 05.05.2020, 22:02
  • 3
  • 4
  • 5
    i386? Моя человечность является amd64.maybe I can' t устанавливают его из-за этого различия. – Quassnoi 05.05.2020, 22:03

Теги

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