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)
}
相关推荐
Kiyra2 分钟前
限流不是加个计数器就行:用 Lua 脚本实现多维度原子限流
开发语言·人工智能·网络协议·职场和发展·架构·lua·ai-native
雨落在了我的手上4 分钟前
初识java(二):数据类型与变量
java·开发语言
小闫BI设源码4 分钟前
当20个节点选出两个Master时:Elasticsearch的致命故障与解决方案
java·elasticsearch·jenkins·php·面试宝典·深入解析
SamDeepThinking13 分钟前
千万级用户购物车系统的架构设计
java·后端·架构
liwulin050614 分钟前
【JAVAFX】从ORACLE JDK切换到国内的JDK以便使用JAVAFX功能
java·数据库·oracle
xcjbqd014 分钟前
提升Python编程效率的五大特性
开发语言·python
平凡但不平庸的码农20 分钟前
Go GMP 调度模型详解
开发语言·后端·golang
2401_8784545326 分钟前
js的复习(一)
开发语言·javascript·ecmascript
旺仔老馒头.26 分钟前
【C++】类和对象(二)
开发语言·c++·后端·类和对象
等故意28 分钟前
C# 工业视觉上位机开发心得分享
开发语言·数码相机·c#·视觉检测