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)
}
相关推荐
萝卜白菜。几秒前
关于Java EE应用中xml解析类的问题
xml·java·java-ee
一米阳光zw6 分钟前
Spring Boot中使用 MDC实现请求TraceId全链路透传
java·spring boot·后端·traceid·mdc
文人sec20 分钟前
使用python-pandas-openpyxl编写运营查询小工具
开发语言·python·pandas
王元_SmallA20 分钟前
pgsql:connection failed connection to server at
java·后端
高山上有一只小老虎25 分钟前
购物消费打折
java·算法
tuokuac30 分钟前
@Configuration类中定义的@Bean方法
java
这儿有一堆花32 分钟前
C语言递归宏详解
c语言·开发语言·c++
csbysj202036 分钟前
C 标准库 - `<ctype.h>`
开发语言
郝学胜-神的一滴40 分钟前
计算机图形中的法线矩阵:深入理解与应用
开发语言·程序人生·线性代数·算法·机器学习·矩阵·个人开发
百锦再1 小时前
第8章 模块系统
android·java·开发语言·python·ai·rust·go