Android kotlin 字符串加密工具 AES加密算法
代码
import android.util.Base64
import java.nio.charset.Charset
import javax.crypto.Cipher
import javax.crypto.spec.IvParameterSpec
import javax.crypto.spec.SecretKeySpec
private var PASSWORD_ENC_SECRET = "xxxxxxx-20202020"
private const val KEY_ALGORITHM = "AES"
private val CHARSET = Charset.forName("UTF-8")
private const val CIPHER_ALGORITHM = "AES/CBC/PKCS7Padding"
fun String.encrypt(): String {
val cipher = Cipher.getInstance(CIPHER_ALGORITHM)
val byteArray = PASSWORD_ENC_SECRET.toByteArray(CHARSET)
val keySpec = SecretKeySpec(byteArray, KEY_ALGORITHM)
cipher.init(Cipher.ENCRYPT_MODE, keySpec, IvParameterSpec(byteArray))
val encrypted = cipher.doFinal(this.toByteArray(CHARSET))
return Base64.encodeToString(encrypted, Base64.NO_WRAP)
}
fun String.decrypt(): String {
val encrypted = Base64.decode(this.toByteArray(CHARSET), Base64.NO_WRAP)
val cipher = Cipher.getInstance(CIPHER_ALGORITHM)
val byteArray = PASSWORD_ENC_SECRET.toByteArray(CHARSET)
val keySpec = SecretKeySpec(byteArray, KEY_ALGORITHM)
cipher.init(Cipher.DECRYPT_MODE, keySpec, IvParameterSpec(byteArray))
val original = cipher.doFinal(encrypted)
return String(original, CHARSET)
}
在线测试网站
https://www.keylala.cn/aes
完事