Вы можете запускать из Java-кода.
try {
File file = new File(keystore location);
is = new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "password";
keystore.load(is, password.toCharArray());
Enumeration enumeration = keystore.aliases();
while(enumeration.hasMoreElements()) {
String alias = (String)enumeration.nextElement();
System.out.println("alias name: " + alias);
Certificate certificate = keystore.getCertificate(alias);
System.out.println(certificate.toString());
}
} catch (java.security.cert.CertificateException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(null != is)
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Класс сертификата содержит всю информацию о хранилище ключей.
UPDATE-OBTAIN PRIVATE KEY
Key key = keyStore.getKey(alias, password.toCharArray());
String encodedKey = new Base64Encoder().encode(key.getEncoded());
System.out.println("key ? " + encodedKey);
@prateek Надеюсь, это то, что вы ищете!
removeAll
- это команда для условного удаления.
var array = [25,45,69,78,63]
array.removeAll{[110] == 78}
print(array)
//[25, 45, 69, 63]
Вы можете использовать фильтр для удаления значений из массива:
let newArray = [25, 45, 69, 78, 63].filter { [110] != 78 }
У вас есть несколько вариантов здесь, в зависимости от того, что лучше всего подходит для вашего конкретного варианта использования!
Функция фильтра передает каждый элемент массива в блок кода. Вы предоставляете и удаляете все предметы, за которые возвращаете false
. Это полезно для выполнения простого фильтра, но если вам также нужен индекс удаленного элемента (например, для перезагрузки пути индекса табличного представления), он не очень полезен.
songIDArray = songIDArray.filter({ id in
return id != 78
})
Сначала получите индекс для удаления, вы можете сделать это различными способами в зависимости от типа элементов, которые есть в вашем массиве. Если они соответствуют Equatable
(целые числа соответствуют), вы можете использовать
if let removalIndex = songIDArray.firstIndex(of: 78) {
songIDArray.remove(at: removalIndex)
}
Если у вас нет массива Equatable
элементов, тогда вы можете вместо этого использовать index(where:)
, который возвращает первый индекс для которого вы возвращаете true из предоставленного замыкания:
if let removalIndex = songIDArray.index(where: { id in
return id == 78
}) {
songIDArray.remove(at: removalIndex)
}
Этот метод полезен, если вам также нужно сделать что-то еще с индексом, например, перезагрузить UITableViewCell
по определенному пути индекса, чтобы отразить ваше изменение и т.д.
В Swift 4.2 также есть функция removeAll(where:)
, которая работает аналогично filter
, но не возвращает новый массив:
songIDArray.removeAll(where: { id in
return id == 78
})