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)
}
相关推荐
是Yu欸1 分钟前
Rust 并发实战:从零构建一个内存安全的“番茄时钟”
开发语言·安全·rust
小池先生8 分钟前
Gradle vs Maven 详细对比
java·maven
q***239213 分钟前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
q***787823 分钟前
Spring Boot的项目结构
java·spring boot·后端
应用市场41 分钟前
Qt QTreeView深度解析:从原理到实战应用
开发语言·数据库·qt
q***96581 小时前
Spring Data JDBC 详解
java·数据库·spring
ooooooctober1 小时前
PHP代码审计框架性思维的建立
android·开发语言·php
Kuo-Teng1 小时前
LeetCode 118: Pascal‘s Triangle
java·算法·leetcode·职场和发展·动态规划
倚肆1 小时前
HttpServletResponse 与 ResponseEntity 详解
java·后端·spring
悟能不能悟1 小时前
java List怎么转换为Vector
java·windows·list