在Android中,可以使用以下方法进行加密和解密:
- 对称加密(Symmetric Encryption):使用相同的密钥进行加密和解密。常用的对称加密算法包括AES(Advanced Encryption Standard)和DES(Data Encryption Standard)等。可以使用javax.crypto包中的Cipher类进行对称加密和解密操作。
示例代码:
// 加密 SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); byte[] encryptedBytes = cipher.doFinal(plainText.getBytes()); // 解密 cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); String decryptedText = new String(decryptedBytes);
- 非对称加密(Asymmetric Encryption):使用公钥进行加密,使用私钥进行解密。常用的非对称加密算法包括RSA(Rivest-Shamir-Adleman)等。可以使用java.security包中的KeyPairGenerator、Cipher和KeyFactory等类进行非对称加密和解密操作。
示例代码:
// 生成密钥对 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); KeyPair keyPair = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); // 加密 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] encryptedBytes = cipher.doFinal(plainText.getBytes()); // 解密 cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); String decryptedText = new String(decryptedBytes);
- 散列函数(Hash Function):将输入数据转换成固定长度的哈希值,通常不可逆。常用的散列函数包括MD5(Message Digest Algorithm 5)和SHA(Secure Hash Algorithm)等。可以使用java.security包中的MessageDigest类进行散列操作。
示例代码:
MessageDigest md = MessageDigest.getInstance("SHA-256"); byte[] hashedBytes = md.digest(input.getBytes()); String hashedText = new String(hashedBytes);
需要注意的是,加密算法和密钥管理涉及到安全性,应根据具体需求和安全标准进行选择和使用。