安全“加密”提供程序在Android N中已弃用

用户Android N中运行我的应用程序,他遇到了崩溃.我知道Google在Android N中弃用了Crypto提供程序,但是迁移旧加密数据的最佳方法是什么.

解决方法:

对于8.0及以上,您可以参考 here

对于低于8.0的版本,您可以查看以下代码.

您可以使用此提供程序替换SecureRandom的“加密”,它对我很有用:

使用,

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");
}
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...