MessageDigest
ハッシュしようとしているときに使用するアルゴリズムの文字列を取ります。ここでいくつかのコードを使用して、Androidデバイスに220の「アルゴリズム」のかなり大きなリストを蓄積しました。私はそれらすべてをアルゴリズムとして使用して繰り返しましたが、MessageDigest
実際にハッシュを生成するものはほとんどありません。
MessageDigest
実行時に、すべてを試すことなく、どのハッシュが出力を生成するかをどのように判断できますか?
MessageDigest
ハッシュしようとしているときに使用するアルゴリズムの文字列を取ります。ここでいくつかのコードを使用して、Androidデバイスに220の「アルゴリズム」のかなり大きなリストを蓄積しました。私はそれらすべてをアルゴリズムとして使用して繰り返しましたが、MessageDigest
実際にハッシュを生成するものはほとんどありません。
MessageDigest
実行時に、すべてを試すことなく、どのハッシュが出力を生成するかをどのように判断できますか?
各プロバイダーのサービスを一覧表示してから、メソッドを呼び出しますgetType()
。である場合MessageDigest
、これはハッシュ アルゴリズムです。何かのようなもの:
Provider[] providers = Security.getProviders();
for (Provider p : providers) {
String providerStr = String.format("%s/%s/%f\n", p.getName(),
p.getInfo(), p.getVersion());
Set<Service> services = p.getServices();
for (Service s : services) {
if ("MessageDigest".equals(s.getType())) {
System.out.printf("\t%s/%s/%s", s.getType(),
s.getAlgorithm(), s.getClassName());
}
}
}