使用加密和md5(targetSdkVersion 24或更高版本)时返回NULL

时间:2018-08-10 07:58:19

标签: android cryptography md5 cryptographic-hash-function target-sdk

我将targetSdkVersion 21更改为24,但随后进行了加密,md5返回null。

代码如下

加密

private static byte[] encrypt(byte[] raw, byte[] plain) throws Exception {
   SecretKeySpec keySpec = new SecretKeySpec(raw, "AES");
   Cipher cipher = Cipher.getInstance("AES");
   cipher.init(Cipher.ENCRYPT_MODE, keySpec);
   byte[] encrypted = cipher.doFinal(plain);
   return encrypted;
}

md5

public static String md5(String s) {
   try {
       // Create MD5 Hash
       MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
       digest.update(s.getBytes());
       byte messageDigest[] = digest.digest();

       // Create Hex String
       StringBuffer hexString = new StringBuffer();
       for (int i = 0; i < messageDigest.length; i++) {
           if ((0xff & messageDigest[i]) < 0x10) {
               hexString.append("0" + Integer.toHexString((0xFF & messageDigest[i])));
           } else {
               hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
           }
       }
       return hexString.toString();
   } catch (NoSuchAlgorithmException e) {
       e.printStackTrace();
   }
   return "";
}

如果需要加密,我是否需要加密targetSdkVersion 24或更高版本,请教我如何加密。 非常感谢。

0 个答案:

没有答案