Android SpongyCastle提供程序使用RSA算法加载SHA1,但仍然不可用
我使用的是v1.51。我将以下maven添加到我的项目中,如下所示(仅与SpongyCastle相关) 根据答案,已经添加到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
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());
}
}
}
}