kotlin aes 加密解密

文章目录

    • [1. key填充](#1. key填充)
    • [2. 加密](#2. 加密)
    • [3. 解密](#3. 解密)

1. key填充

aes算法对key的字节数有要求 所以对输入的key要做填充处理

kotlin 复制代码
fun fillKey(key: String): ByteArray {
    val random = SecureRandom.getInstance("SHA1PRNG")
    random.setSeed(key.toByteArray())
    val generator = KeyGenerator.getInstance("AES")
    generator.init(random)
    return generator.generateKey().encoded
}

2. 加密

kotlin 复制代码
fun ktAes(key: String, source: String): String {
    val keyBytes = fillKey(key)
    return Aes(keyBytes).encryptBase64(source)
}

3. 解密

kotlin 复制代码
fun ktDeAes(key: String, source: String): String {
    val keyBytes = fillKey(key)
    return Aes(keyBytes).decryptStr(source)
}
相关推荐
gihigo199821 小时前
MATLAB运动估计基本算法详解
开发语言·算法·matlab
不光头强21 小时前
SpringBoot 开发第三天 学习内容
java·spring boot·学习
郝学胜-神的一滴21 小时前
TCP通讯的艺术:从握手到挥手的优雅对话
开发语言·网络·网络协议·tcp/ip·程序人生
黎雁·泠崖21 小时前
【魔法森林冒险】12/14 场景系统:5大场景的任务串联
java·开发语言
l1t21 小时前
在python 3.14 容器中安装和使用chdb包
开发语言·python·clickhouse·chdb
梵刹古音21 小时前
【C++】函数重写
开发语言·c++
Vic1010121 小时前
算法D1-20260212:双指针专题
java·数据结构·算法
民国二十三画生1 天前
C++(兼容 C 语言) 的标准输入语法,用来读取一行文本
c语言·开发语言·c++
Codiggerworld1 天前
从字节码到JVM:深入理解Java的“一次编写,到处运行”魔法
java·开发语言·jvm