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)
}
相关推荐
爱笑的眼睛119 小时前
强化学习组件:超越Hello World的架构级思考与实践
java·人工智能·python·ai
历程里程碑9 小时前
C++ 6 :string类:高效处理字符串的秘密
c语言·开发语言·数据结构·c++·笔记·算法·排序算法
武帝为此9 小时前
【字典树 C++ 实现】
开发语言·c++
悟能不能悟9 小时前
java 设置日期返回格式的几种方式
java·开发语言
未来之窗软件服务9 小时前
幽冥大陆(四十八)P50酒店门锁SDK 苹果object c语言仙盟插件——东方仙盟筑基期
c语言·开发语言·酒店门锁·仙盟创梦ide·东方仙盟·东方仙盟sdk
爱笑的眼睛119 小时前
深入解析PyTorch nn模块:超越基础模型构建的高级技巧与实践
java·人工智能·python·ai
Smile_2542204189 小时前
解决本地 Windows 开发机无法注册到 PowerJob 服务器的问题
java·tcp/ip
float_六七9 小时前
Spring AOP连接点实战解析
java·后端·spring
while(1){yan}10 小时前
基于IO流的三个小程序
java·开发语言·青少年编程
王燕龙(大卫)10 小时前
rust:线程
开发语言·rust