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)
}
相关推荐
灰灰勇闯IT19 分钟前
RN路由与状态管理:打造多页面应用
开发语言·学习·rn路由状态
wd_cloud19 分钟前
QT/6.7.2/Creator编译Windows64 MySQL驱动
开发语言·qt·mysql
菜鸟233号21 分钟前
力扣513 找树左下角的值 java实现
java·数据结构·算法·leetcode
亭上秋和景清23 分钟前
指针进阶:函数指针详解
开发语言·c++·算法
胡萝卜3.024 分钟前
C++现代模板编程核心技术精解:从类型分类、引用折叠、完美转发的内在原理,到可变模板参数的基本语法、包扩展机制及emplace接口的底层实现
开发语言·c++·人工智能·机器学习·完美转发·引用折叠·可变模板参数
9ilk25 分钟前
【C++】--- C++11
开发语言·c++·笔记·后端
biter down1 小时前
C++ 函数重载:从概念到编译原理
开发语言·c++
Neoest1 小时前
【EasyExcel 填坑日记】“Syntax error on token )“: 一次编译错误在逃 Runtime 的灵异事件
java·eclipse·编辑器
モンキー・D・小菜鸡儿1 小时前
Android Jetpack Compose 基础控件介绍
android·kotlin·android jetpack·compose
自在极意功。1 小时前
Web开发中的分层解耦
java·microsoft·web开发·解耦