Easy way to Encrypt/Decrypt string in Android

后端 未结 5 1114
旧时难觅i
旧时难觅i 2020-12-04 10:50

My question is how to encrypt a String:

String AndroidId;

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(save         


        
5条回答
  •  鱼传尺愫
    2020-12-04 11:00

    You can use Cipher for this.

    This class provides the functionality of a cryptographic cipher for encryption and decryption. It forms the core of the Java Cryptographic Extension (JCE) framework.

    Sample of encryption and decryption:

    public static SecretKey generateKey() 
        throws NoSuchAlgorithmException, InvalidKeySpecException 
    { 
        return secret = new SecretKeySpec(password.getBytes(), "AES"); 
    }
    
    public static byte[] encryptMsg(String message, SecretKey secret)
        throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidParameterSpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException 
    { 
       /* Encrypt the message. */
       Cipher cipher = null; 
       cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
       cipher.init(Cipher.ENCRYPT_MODE, secret); 
       byte[] cipherText = cipher.doFinal(message.getBytes("UTF-8")); 
       return cipherText; 
    }
    
    public static String decryptMsg(byte[] cipherText, SecretKey secret) 
        throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidParameterSpecException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException, UnsupportedEncodingException 
    {
        /* Decrypt the message, given derived encContentValues and initialization vector. */
        Cipher cipher = null;
        cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, secret); 
        String decryptString = new String(cipher.doFinal(cipherText), "UTF-8");
        return decryptString; 
    }
    

    To encrypt:

    SecretKey secret = generateKey();
    EncUtil.encryptMsg(String toEncrypt, secret))
    

    To decrypt:

    EncUtil.decryptMsg(byte[] toDecrypt, secret))
    

提交回复
热议问题