首页 > 解决方案 > Android中的AES加密解密算法是否使用NoPadding?

问题描述

我的代码面临这个问题。

public  byte[] encryptString(String unencryptedData, String encryptionKey) throws Exception {
    Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding", "SunJCE");
    SecretKeySpec key = new SecretKeySpec(encryptionKey.getBytes("UTF-8"), "AES"); //256-AES, 512-AES
    cipher.init(Cipher.ENCRYPT_MODE, key,new IvParameterSpec(encryptionKey.getBytes("UTF-8")));

    return cipher.doFinal(unencryptedData.getBytes("UTF-8"));
}

标签: android

解决方案


您可以使用此代码查看可用的提供程序和算法组合:

for (Provider p : Security.getProviders()) {
    Log.e(TAG, "Service Name: " + p.getName()));

    for (Provider.Service s : p.getServices()) {
        Log.e(TAG, "     Algorithm:      " +  s.getAlgorithm()));
    }
}

推荐阅读