2016-08-23 10 views
3

ユーザーがAndroid Nで自分のアプリケーションを実行するとクラッシュしました。Android NのGoogle廃止暗号プロバイダを知っていますが、古い暗号化データを移行するにはAndroid Nで廃止されたセキュリティ「Crypto」プロバイダN

あなたは私のためにその作業罰金のSecureRandomのための "暗号化" の交換このプロバイダを使用することができます

答えて

10

使用、

SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", new CryptoProvider()); 

代わりに、

SecureRandom sr = SecureRandom.getInstance("SHA1PRNG","Crypto"); 

とあなたのCryptoProviderクラスのような以下のように、

import java.security.Provider; 
/** 
* Implementation of Provider for SecureRandom. The implementation  supports the 
* "SHA1PRNG" algorithm described in JavaTM Cryptography Architecture, API 
* Specification & Reference 
*/ 
public final class CryptoProvider extends Provider { 
    /** 
* Creates a Provider and puts parameters 
*/ 
public CryptoProvider() { 
    super("Crypto", 1.0, "HARMONY (SHA1 digest; SecureRandom; SHA1withDSA signature)"); 
    put("SecureRandom.SHA1PRNG", 
      "org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl"); 
    put("SecureRandom.SHA1PRNG ImplementedIn", "Software"); 
} 
} 
+0

ありがとう、これは魅力のように動作します。簡単に説明できますか? – Neo

+0

それは働いた!実際に推奨される方法に進む前に、少なくともこれがクイックフィックスになる可能性があります。 – Mangesh

関連する問題