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)
}
相关推荐
CodeStats1 分钟前
《源纹天书》卷一:归元初醒(第1-5章)
java
大囚长5 分钟前
大模型服务端如何命中缓存
java·人工智能·缓存·dubbo
摇滚侠5 分钟前
SpringMVC 入门到实战 拦截器 78-82
java·后端·spring·maven·intellij-idea
xiaoshuaishuai87 分钟前
C# 定制化Markdown编辑器
开发语言·c#·编辑器
DogDaoDao8 分钟前
C++核心技术深度剖析:从底层原理到工程实践
开发语言·c++·面试·程序员·指针·虚函数
磊 子11 分钟前
C++移动语义和智能指针
java·开发语言·c++
JAVA面经实录91712 分钟前
Elasticsearch 完整版完整知识体系
java·elasticsearch·搜索引擎·es
不负岁月无痕14 分钟前
C++继承与多态知识点及其高频面试问题
开发语言·c++·面试
hikktn15 分钟前
ORA-01861 日期格式错误的根治方案:从 SQL 层到 Java 层的标准化治理
java·python·sql
June`17 分钟前
如何组织一个并行程序
开发语言·cuda