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)
}
相关推荐
Zqrnja3 分钟前
PTA 2026天体选拔赛(多校联赛)L2-1 仪式网络(C++ 含代码解释)
开发语言·c++
llm大模型算法工程师weng8 分钟前
负载均衡做什么?nginx是什么
运维·开发语言·nginx·负载均衡
有梦想的攻城狮10 分钟前
java中的EnumSet使用详解
java·set·bitset·enumset
逆境不可逃10 分钟前
【后端新手谈13】VO、BO、PO、DO、DTO:Java 分层开发的 5 大核心数据对象
java·开发语言
古月方枘Fry13 分钟前
三层交换+VRRP实现负载
开发语言·网络·php
qq_54702617918 分钟前
Java 中的 Caffeine 缓存详解
java·开发语言·缓存
froginwe1125 分钟前
JSP 发送邮件
开发语言
沐雪轻挽萤30 分钟前
15. C++17新特性-std::string_view
java·开发语言·c++
不考研当牛马38 分钟前
python 第21课 基础完结(UDP套接字)
开发语言·python·udp
wearegogog12342 分钟前
光伏发电系统最大功率跟踪(MPPT)算法 Matlab 实现指南
开发语言·算法·matlab