#android #bouncycastle
#Android #bouncycastle
Вопрос:
Доброго времени суток, мне нужно каким-то образом подключить библиотеку bouncycastle к android Studio. Как это можно сделать? Я никогда раньше не сталкивался с таким. Вот код, для которого мне нужна эта библиотека:
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
byte[] input = "www.javaCODEgeeks.com".getBytes();
byte[] keyBytes = new byte[]{0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xab, (byte) 0xcd,
(byte) 0xef};
byte[] ivBytes = new byte[]{0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00};
SecretKeySpec pKey = new SecretKeySpec(keyBytes, "DES");
IvParameterSpec ivectorSpecv = new IvParameterSpec(ivBytes);
Cipher c = Cipher.getInstance("DES/CBC/PKCS7Padding", "BC");
System.out.println("input : " new String(input));
// encryption pass
c.init(Cipher.ENCRYPT_MODE, pKey, ivectorSpecv);
byte[] encr = new byte;
int ctLen = c.update(input, 0, input.length, encr, 0);
ctLen = c.doFinal(encr, ctLen);
System.out.println("cipher: " new String(encr).getBytes("UTF-8").toString() " bytes: " ctLen);
c.init(Cipher.DECRYPT_MODE, pKey, ivectorSpecv);
byte[] decrpt = new byte;
int ptLen = c.update(encr, 0, ctLen, decrpt, 0);
ptLen = c.doFinal(decrpt, ptLen);
System.out.println("plain : " new String(decrpt) " bytes: " ptLen);
Заранее спасибо за вашу помощь)
Комментарии:
1. Вы не можете добавить библиотеку attach a в Android Studio XD 😉 Вы можете добавить его в свое приложение.
Ответ №1:
В вашем модуле (на уровне приложения) файл Gradle (обычно app/build.gradle
) добавьте эту зависимость
implementation 'org.bouncycastle:bcpkix-jdk15on:1.56'
Комментарии:
1. Всем привет. Как бы вы хотели использовать эту реализацию? Он же — Как импортировать его в скрипт для использования? импорт org.bouncycastle:bcpkix-jdk15on:1.56 выдает ошибку: «Ожидается объявление верхнего уровня»
2. Я также пытался не использовать импорт и получил «Ожидание элемента» после org и bouncycastle в этой строке: Security.addProvider(новая org.bouncycastle.jce.provider. BouncyCastleProvider());