Android SpongyCastle提供程序使用RSA算法加载SHA1,但仍然不可用

Android SpongyCastle提供程序使用RSA算法加载SHA1,但仍然不可用,android,maven,digital-signature,spongycastle,Android,Maven,Digital Signature,Spongycastle,我使用的是v1.51。我将以下maven添加到我的项目中,如下所示(仅与SpongyCastle相关) 根据答案,已经添加到maven pom文件中 我仍然在调试测试,没有使用任何Proguard功能 pom.xml <dependency> <groupId>com.madgag.spongycastle</groupId> <artifactId>core</artifact

我使用的是v1.51。我将以下maven添加到我的项目中,如下所示(仅与SpongyCastle相关)

根据答案,已经添加到
maven pom
文件中

我仍然在调试测试,没有使用任何
Proguard
功能

pom.xml

        <dependency>
            <groupId>com.madgag.spongycastle</groupId>
            <artifactId>core</artifactId>
            <version>1.51.0.0</version>
        </dependency>


        <dependency>
            <groupId>com.madgag.spongycastle</groupId>
            <artifactId>prov</artifactId>
            <version>1.51.0.0</version>
        </dependency>

        <dependency>
            <groupId>com.madgag.spongycastle</groupId>
            <artifactId>pg</artifactId>
            <version>1.51.0.0</version>
        </dependency>
请随时要求进一步澄清。谢谢你抽出时间

更新:

我在这里添加了以下代码,以获得算法列表

Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider());
//      new org.spongycastle.jce.provider.BouncyCastleProvider().
//      Security.addProvider(new );

        for (Provider provider : Security.getProviders()) {
            System.out.println("Provider: " + provider.getName());
            for (Provider.Service service : provider.getServices()) {
                System.out.println("  Algorithm: " + service.getAlgorithm());
            }
        }
算法列表的输出(不完整,仅特定)


即使在加载后,算法也不可用。

我认为您以错误的方式插入了提供程序。要在应用程序中插入spongycastle作为安全提供商,您需要如下初始化它

    public class Sample {

    static {
        Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
    }

    public void printProviders() {
        for (Provider provider : Security.getProviders()) {
            System.out.println("Provider: " + provider.getName());
            for (Provider.Service service : provider.getServices()) {
                System.out.println("  Algorithm: " + service.getAlgorithm());
            }
        }
    }
}

我不知道问题出在哪里,最后我将对象属性发送到服务器,在那里我将其转换成XML,然后在java服务器端对其进行签名,在那里它工作得很好。P.s.那里没有使用海绵城堡
Poor android does not support XML that good.
Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider());
//      new org.spongycastle.jce.provider.BouncyCastleProvider().
//      Security.addProvider(new );

        for (Provider provider : Security.getProviders()) {
            System.out.println("Provider: " + provider.getName());
            for (Provider.Service service : provider.getServices()) {
                System.out.println("  Algorithm: " + service.getAlgorithm());
            }
        }
05-04 12:13:48.145: I/System.out(22193):   Algorithm: DETECDSA
05-04 12:13:48.145: I/System.out(22193):   Algorithm: SEED-GMAC
05-04 12:13:48.145: I/System.out(22193):   Algorithm: RC5
05-04 12:13:48.145: I/System.out(22193):   Algorithm: CERTIFICATE
05-04 12:13:48.145: I/System.out(22193):   Algorithm: POLY1305-CAMELLIA
05-04 12:13:48.145: I/System.out(22193):   Algorithm: HC256
05-04 12:13:48.145: I/System.out(22193):   Algorithm: VMPC-KSA3
05-04 12:13:48.145: I/System.out(22193):   Algorithm: DESMAC64

05-04 12:13:48.145: I/System.out(22193):   Algorithm: SHA1WITHRSA

05-04 12:13:48.145: I/System.out(22193):   Algorithm: BouncyCastle
05-04 12:13:48.145: I/System.out(22193):   Algorithm: SKIPJACK
05-04 12:13:48.145: I/System.out(22193):   Algorithm: DESEDEMAC
05-04 12:13:48.155: I/System.out(22193):   Algorithm: POLY1305-CAMELLIA
05-04 12:13:48.155: I/System.out(22193):   Algorithm: SHA3-224
05-04 12:13:48.155: I/System.out(22193):   Algorithm: Skein-512-384
    public class Sample {

    static {
        Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
    }

    public void printProviders() {
        for (Provider provider : Security.getProviders()) {
            System.out.println("Provider: " + provider.getName());
            for (Provider.Service service : provider.getServices()) {
                System.out.println("  Algorithm: " + service.getAlgorithm());
            }
        }
    }
}