java - Come posso elencare gli algoritmi Cipher disponibili?




1 Answers

Una volta che ho un elenco di provider, come descritto nel post di JB Nizet, non ho ancora un elenco di algoritmi. Ho scoperto che ogni Provider funziona come un oggetto Proprietà e le Proprietà codificano i nomi degli algoritmi. Non sono del tutto chiaro se questo è il modo corretto per cercarli o meno, e cosa significano esattamente tutte le altre proprietà, ma ho appena scritto una routine che ha sputato tutte le proprietà a System.out e grepped per varie stringhe che descrivono cosa Stavo cercando fino a quando l'ho trovato.

import java.security.*;

for (Provider provider: Security.getProviders()) {
  System.out.println(provider.getName());
  for (String key: provider.stringPropertyNames())
    System.out.println("\t" + key + "\t" + provider.getProperty(key));
}

Ricevo un'implementazione di Cipher con Cipher.getInstance(String algorithm) . Ho l'impressione che i nomi di algoritmi disponibili che posso passare differiscano in base a quali librerie sono presenti nel mio classpath.

Vorrei scrivere un semplice programma che possa essere eseguito con diversi classpath che elencheranno i nomi degli algoritmi Cipher disponibili. Quale metodo avrei bisogno di chiamare per ottenere questo elenco?




Related