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)
}
相关推荐
SamDeepThinking几秒前
基于CompletableFuture的主子任务并行处理架构实战:多渠道账单并发导入性能提升5倍的技术方案
java·后端·excel
CoderYanger几秒前
A.每日一题——2435. 矩阵中和能被 K 整除的路径
开发语言·线性代数·算法·leetcode·矩阵·深度优先·1024程序员节
我命由我12345几秒前
微信小程序 - 页面跳转并传递参数(使用路由参数、使用全局变量、使用本地存储、使用路由参数结合本地存储)
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
期待のcode1 分钟前
Springboot整合springmvc的自动装配
java·spring boot·后端
j***51891 分钟前
Spring总结(上)
java·spring·rpc
DJ斯特拉3 分钟前
日志技术Logback
java·前端·logback
悟能不能悟3 分钟前
springboot的controller中如何拿到applicatim.yml的配置值
java·spring boot·后端
0和1的舞者4 分钟前
《SpringBoot 入门通关指南:从 HelloWorld 到问题排查全掌握》
java·spring boot·后端·网络编程·springboot·开发·网站
SamDeepThinking4 分钟前
88MB Excel文件导致系统崩溃?看我如何将内存占用降低
java·excel
我要添砖java6 分钟前
<JAVAEE>多线程6-面试八股文之juc中的组件
java·面试·java-ee