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)
}
相关推荐
一晌小贪欢4 分钟前
PyQt5 开发一个 PDF 批量合并工具
开发语言·qt·pdf
神仙别闹4 分钟前
基于 MATLAB 实现的图像信号处理
开发语言·matlab·信号处理
迷藏4945 分钟前
**超融合架构下的Go语言实践:从零搭建高性能容器化微服务集群**在现代云原生时代,*
java·python·云原生·架构·golang
swift1922110 分钟前
Qt多语言问题 —— 静态成员变量
开发语言·c++·qt
それども14 分钟前
Spring Bean @Autowired自注入空指针问题
java·开发语言·spring
如来神掌十八式16 分钟前
Java所有的锁:从基础到进阶
java·
硅基诗人20 分钟前
Java后端高并发核心瓶颈突破(JVM+并发+分布式底层实战)
java·jvm·分布式
沐知全栈开发21 分钟前
JavaScript for 循环
开发语言
星空椰23 分钟前
JavaScript 基础入门:从零开始掌握变量与数据类型
开发语言·前端·javascript·ecmascript
ulias21226 分钟前
Linux中的开发工具
linux·运维·服务器·开发语言·c++·windows