From d991b4077bc09cef1fef4bfbb0acb8322c447b7d Mon Sep 17 00:00:00 2001 From: MingliPro Date: Sun, 14 Sep 2025 10:51:42 +0800 Subject: [PATCH] add --- build.gradle.kts | 3 ++ gradle/wrapper/gradle-wrapper.properties | 2 +- .../com/mingliqiye/utils/path/OsPath.java | 10 ++++++ src/main/kotlin/com/mingliqiye/utils/Main.kt | 3 ++ .../com/mingliqiye/utils/security/AesUtils.kt | 35 +++++++++++++++++++ .../mingliqiye/utils/security/SecureUtils.kt | 33 +++++++++++++++++ 6 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/com/mingliqiye/utils/security/AesUtils.kt create mode 100644 src/main/kotlin/com/mingliqiye/utils/security/SecureUtils.kt diff --git a/build.gradle.kts b/build.gradle.kts index 1bb0c57..6ff8032 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -144,6 +144,9 @@ tasks.withType { } repositories { + maven { + url = uri("https://maven.aliyun.com/repository/public/") + } mavenCentral() } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6fdf91c..11573d4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -21,7 +21,7 @@ # distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-rc-1-bin.zip +distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.14-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/com/mingliqiye/utils/path/OsPath.java b/src/main/java/com/mingliqiye/utils/path/OsPath.java index 3e26a5f..296a199 100644 --- a/src/main/java/com/mingliqiye/utils/path/OsPath.java +++ b/src/main/java/com/mingliqiye/utils/path/OsPath.java @@ -47,6 +47,16 @@ public class OsPath implements Path { return new OsPath(path); } + public static OsPath of(URI uri) { + return new OsPath(Paths.get(uri)); + } + public static OsPath of(File file) { + return new OsPath(file.toPath()); + } + public static OsPath getCwd(){ + return new OsPath(Paths.get("")); + } + @Override public @NotNull FileSystem getFileSystem() { return path.getFileSystem(); diff --git a/src/main/kotlin/com/mingliqiye/utils/Main.kt b/src/main/kotlin/com/mingliqiye/utils/Main.kt index 83000f5..56beadf 100644 --- a/src/main/kotlin/com/mingliqiye/utils/Main.kt +++ b/src/main/kotlin/com/mingliqiye/utils/Main.kt @@ -24,9 +24,12 @@ package com.mingliqiye.utils +import com.mingliqiye.utils.path.OsPath import com.mingliqiye.utils.springboot.autoconfigure.AutoConfiguration fun main() { AutoConfiguration.printBanner() + val path = OsPath.getCwd() + println(path.toAbsolutePath()) } diff --git a/src/main/kotlin/com/mingliqiye/utils/security/AesUtils.kt b/src/main/kotlin/com/mingliqiye/utils/security/AesUtils.kt new file mode 100644 index 0000000..63605d1 --- /dev/null +++ b/src/main/kotlin/com/mingliqiye/utils/security/AesUtils.kt @@ -0,0 +1,35 @@ +@file:JvmName("AesUtils") + +package com.mingliqiye.utils.security +import javax.crypto.Cipher +import javax.crypto.spec.GCMParameterSpec + +const val ALGORITHM = "AES" +const val AES_GCM_NO_PADDING = "AES/GCM/NoPadding" +const val AES_GCM_NO_PADDING_IV_LENGTH = 12 +const val AES_GCM_NO_PADDING_TAG_LENGTH = 16 + +fun encryptAesGcmNoPadding(src: ByteArray, key: ByteArray,iv: ByteArray): ByteArray { + val secretKeySpec = createSecretKeySpec(ALGORITHM,key) + val cipher = Cipher.getInstance(AES_GCM_NO_PADDING) + val gcmParameterSpec = GCMParameterSpec( + AES_GCM_NO_PADDING_TAG_LENGTH * 8, + iv + ) + cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, gcmParameterSpec) + return cipher.doFinal(src) +} +fun encryptAesGcmNoPadding(src: ByteArray, key: String,iv: ByteArray): ByteArray { + return encryptAesGcmNoPadding(src, key.toByteArray(), iv) +} +fun encryptAesGcmNoPadding(src: String, key: String,iv: ByteArray): ByteArray { + return encryptAesGcmNoPadding(src.toByteArray(), key.toByteArray(), iv) +} + +fun main() { + val iv = getRandomBytes(16) + println(encryptAesGcmNoPadding("mingliqiye","key", iv)) +} + + + diff --git a/src/main/kotlin/com/mingliqiye/utils/security/SecureUtils.kt b/src/main/kotlin/com/mingliqiye/utils/security/SecureUtils.kt new file mode 100644 index 0000000..12c7e60 --- /dev/null +++ b/src/main/kotlin/com/mingliqiye/utils/security/SecureUtils.kt @@ -0,0 +1,33 @@ +@file:JvmName("SecureUtils") + +package com.mingliqiye.utils.security + +import java.security.MessageDigest +import java.security.SecureRandom +import javax.crypto.SecretKey +import javax.crypto.spec.SecretKeySpec + +internal val SECURE_RANDOM = SecureRandom() + +fun getRandomBytes(length: Int): ByteArray { + val bytes = ByteArray(length) + SECURE_RANDOM.nextBytes(bytes) + return bytes +} + +fun createSecretKey(algorithm: String, data: ByteArray): ByteArray { + val md = MessageDigest.getInstance(algorithm) + return md.digest(data) +} + +fun createSecretKey(algorithm: String, data: String): ByteArray { + return createSecretKey(algorithm, data.toByteArray()) +} + +fun createSecretKeySpec(algorithm: String, data: String): SecretKey { + return SecretKeySpec( createSecretKey(algorithm,data), algorithm) +} + +fun createSecretKeySpec(algorithm: String, data: ByteArray): SecretKey { + return SecretKeySpec( createSecretKey(algorithm,data), algorithm) +} \ No newline at end of file