java.security.UnrecoverableKeyException: Keine Übereinstimmung

8

Problem : Sie müssen den privaten RSA-Schlüssel an einem verschlüsselten Ort speichern. Versuchen Sie, KeyStore für diesen Zweck zu verwenden.

Code-Snippet :

%Vor%

Ich benutze Bouncycastle-Bibliothek für die Zertifikatgenerierung

Stapelverfolgung

%Vor%     
Alex Klimashevsky 16.03.2014, 10:16
quelle

4 Antworten

1

Es gibt mehrere Stellen, an denen Sie Änderungen vornehmen können:

1) Ich habe die Bibliothek bouncycastle in schwammycastle

geändert

2) hinzugefügt

%Vor%

3) verwendet KeyStore keyStore = KeyStore.getInstance("BKS", "SC");

4) verwendet

%Vor%

Der Grund ist, dass verschiedene Anbieter unterschiedliche binäre Schlüssel darstellen. Wenn Sie also Schlüssel mit einem Provider generieren, können Probleme auftreten, wenn Sie versuchen, den Binärstream mit einem anderen Provider wiederherzustellen.

    
Alex Klimashevsky 27.03.2014, 15:02
quelle
2

Könnte ein schlechtes Passwort sein. Schreiben Sie Ihr Passwort von generatePassword auf debug und verwenden Sie das Keytool, um zu überprüfen, ob es funktioniert, den Inhalt des generierten KeyStore zu lesen.

Ein anderer Stack Overflow / Spongy Castle Benutzer sagte, dass es geholfen hat, einen Konstruktor anzugeben, wenn er seinen KeyStore erstellt. Für ihn:

%Vor%

statt

%Vor%

Ich weiß, dass Sie nicht den Konstruktor verwenden, um einen Keystore zu erstellen, aber vielleicht helfen diese Informationen.

    
Barett 20.03.2014 18:51
quelle
2

Wenn ich Ihren Code ausführe, bekomme ich eine Ausnahme, dass der private Schlüsseleintrag mit einem Passwort geschützt werden muss:

%Vor%

Es sieht so aus, als ob Implementierungen von Java (sowohl von Oracle als auch von Android) einen privaten Schlüsseleintrag ohne Schutz erstellen könnten (im Keystore ist der Keystore selbst und jeder Eintrag hat seinen eigenen Passwortschutz), aber beim Laden benötigen sie ein obligatorisches Passwort . Um das zu beheben, geben Sie einfach das Passwort in KeyStore.getEntry ()

ein %Vor%

Eine andere Möglichkeit ist die Verwendung von

%Vor%     
divanov 22.03.2014 07:57
quelle
2

Der Link, auf den sich @Barret bezieht, ist dies Unbegrenzte Stärke Jce und Android

Ich hatte ein ähnliches Problem. In meinem Fall war das Passwort beim Speichern und Abrufen mit der String-Methode anders. Versuchen Sie, ein hart codiertes Passwort für den Debug-Zweck bereitzustellen.

    
Sumedh Jiwane 25.03.2014 07:54
quelle

Tags und Links