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)
}
相关推荐
疯狂的挖掘机14 小时前
记一次基于QT的图片操作处理优化思路(包括在图上放大缩小,截图,画线,取值等)
开发语言·数据库·qt
cnxy18814 小时前
围棋对弈Python程序开发完整指南:步骤4 - 提子逻辑和劫争规则实现
开发语言·python·机器学习
意趣新15 小时前
C 语言源文件从编写完成到最终生成可执行文件的完整、详细过程
c语言·开发语言
.鸣15 小时前
set和map
java·学习
ha_lydms15 小时前
5、Spark函数_s/t
java·大数据·python·spark·数据处理·maxcompute·spark 函数
李艺为15 小时前
根据apk包名动态修改Android品牌与型号
android·开发语言
黄河滴滴16 小时前
java系统变卡变慢的原因是什么?从oom的角度分析
java·开发语言
侠客行031716 小时前
Mybatis二级缓存实现详解
java·mybatis·源码阅读
老华带你飞16 小时前
农产品销售管理|基于java + vue农产品销售管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
superman超哥16 小时前
Rust Workspace 多项目管理:单体仓库的优雅组织
开发语言·rust·多项目管理·rust workspace·单体仓库