kotlin 加密解密库
时间: 2023-11-22 08:43:04 浏览: 258
加密库=字符加密、解密完全C#代码
k中有很多加密解密库可以使用。其中一些常用的库包括:
1. Java Cryptography Extension (JCE):Java的标准加密解密库,可以在Kotlin中使用。
2. Bouncy Castle: 一个开源的加密库,支持多种加密算法和协议。
3. Kotlin Crypto: 一个基于Kotlin语言的轻量级加密库,提供了对常见加密算法的支持。
4. Tink: 由Google开发的一个现代化的加密库,支持各种加密操作和安全功能。
以下是使用Kotlin Crypto库进行加密解密的示例代码:
```kotlin
import org.bouncycastle.jce.provider.BouncyCastleProvider
import org.bouncycastle.util.encoders.Base64
import javax.crypto.Cipher
import javax.crypto.spec.SecretKeySpec
fun encrypt(input: String, password: String): String {
val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding", BouncyCastleProvider())
val keySpec = SecretKeySpec(password.toByteArray(), "AES")
cipher.init(Cipher.ENCRYPT_MODE, keySpec)
val encryptedBytes = cipher.doFinal(input.toByteArray())
return Base64.toBase64String(encryptedBytes)
}
fun decrypt(input: String, password: String): String {
val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding", BouncyCastleProvider())
val keySpec = SecretKeySpec(password.toByteArray(), "AES")
cipher.init(Cipher.DECRYPT_MODE, keySpec)
val decryptedBytes = cipher.doFinal(Base64.decode(input))
return String(decryptedBytes)
}
fun main(args: Array<String>) {
val input = "欢迎来到Errol_King的博客"
val password = "12345678"
val encrypt = encrypt(input, password)
println(encrypt)
val decrypt = decrypt(encrypt, password)
println(decrypt)
}
```
阅读全文