From 87d06133d9d92039ddd706e1afacd812ea0df227 Mon Sep 17 00:00:00 2001 From: student-d-sherstnev Date: Wed, 25 Feb 2026 14:25:09 +0300 Subject: [PATCH] fixed --- .../java/ru/myitschool/work/core/Constants.kt | 4 +- .../ru/myitschool/work/data/AESEncryption.kt | 58 ------------------- .../myitschool/work/data/Base64Encryption.kt | 14 +++++ .../work/data/repo/AuthRepository.kt | 8 +-- .../work/data/source/NetworkDataSource.kt | 2 + 5 files changed, 21 insertions(+), 65 deletions(-) delete mode 100644 app/src/main/java/ru/myitschool/work/data/AESEncryption.kt create mode 100644 app/src/main/java/ru/myitschool/work/data/Base64Encryption.kt diff --git a/app/src/main/java/ru/myitschool/work/core/Constants.kt b/app/src/main/java/ru/myitschool/work/core/Constants.kt index c495a10..105d228 100644 --- a/app/src/main/java/ru/myitschool/work/core/Constants.kt +++ b/app/src/main/java/ru/myitschool/work/core/Constants.kt @@ -1,8 +1,8 @@ package ru.myitschool.work.core object Constants { - const val HOST = "http://10.0.0.12:49165" - const val AUTH_URL = "/auth" + const val HOST = "http://10.0.0.103:49165" + const val AUTH_URL = "/login" const val INFO_URL = "/info" const val BOOKING_URL = "/booking" const val BOOK_URL = "/book" diff --git a/app/src/main/java/ru/myitschool/work/data/AESEncryption.kt b/app/src/main/java/ru/myitschool/work/data/AESEncryption.kt deleted file mode 100644 index 00e2a8b..0000000 --- a/app/src/main/java/ru/myitschool/work/data/AESEncryption.kt +++ /dev/null @@ -1,58 +0,0 @@ -package ru.myitschool.work.data - -import android.util.Base64 -import javax.crypto.Cipher -import javax.crypto.SecretKeyFactory -import javax.crypto.spec.IvParameterSpec -import javax.crypto.spec.PBEKeySpec -import javax.crypto.spec.SecretKeySpec - - -object AESEncyption { - - const val secretKey = "tK5Ugskdkipokuodvknfdk3434weofnf=" - const val salt = "QLlGNHNhYTJTQWZ2bGhpV3U=" - const val iv = "bVQqNFNhRkQ1Njc4UUFaPA==" - - fun encrypt(strToEncrypt: String): String? { - try { - val ivParameterSpec = IvParameterSpec(Base64.decode(iv, Base64.DEFAULT)) - - val factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1") - val spec = - PBEKeySpec(secretKey.toCharArray(), Base64.decode(salt, Base64.DEFAULT), 10000, 256) - val tmp = factory.generateSecret(spec) - val secretKey = SecretKeySpec(tmp.encoded, "AES") - - val cipher = Cipher.getInstance("AES/CBC/PKCS7Padding") - cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec) - return Base64.encodeToString( - cipher.doFinal(strToEncrypt.toByteArray(Charsets.UTF_8)), - Base64.DEFAULT - ) - } catch (e: Exception) { - println("Error while encrypting: $e") - } - return null - } - - fun decrypt(strToDecrypt: String?): String? { - try { - - val ivParameterSpec = IvParameterSpec(Base64.decode(iv, Base64.DEFAULT)) - - val factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1") - val spec = - PBEKeySpec(secretKey.toCharArray(), Base64.decode(salt, Base64.DEFAULT), 10000, 256) - val tmp = factory.generateSecret(spec) - val secretKey = SecretKeySpec(tmp.encoded, "AES") - - val cipher = Cipher.getInstance("AES/CBC/PKCS7Padding") - cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec) - return String(cipher.doFinal(Base64.decode(strToDecrypt, Base64.DEFAULT))) - } catch (e: Exception) { - println("Error while decrypting: $e") - } - return null - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/data/Base64Encryption.kt b/app/src/main/java/ru/myitschool/work/data/Base64Encryption.kt new file mode 100644 index 0000000..358e167 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/data/Base64Encryption.kt @@ -0,0 +1,14 @@ +package ru.myitschool.work.data + +import java.util.Base64 + + +object Base64Encoder { + fun encrypt(strToEncrypt: String): String? { + return Base64.getEncoder().encodeToString(strToEncrypt.toByteArray()) + } + + fun decrypt(strToDecrypt: String): String { + return String(Base64.getDecoder().decode(strToDecrypt)) + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt b/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt index 8dffc44..e70f054 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt +++ b/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt @@ -8,7 +8,7 @@ import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.firstOrNull import ru.myitschool.work.App -import ru.myitschool.work.data.AESEncyption +import ru.myitschool.work.data.Base64Encoder import ru.myitschool.work.data.dto.AuthRequestDto import ru.myitschool.work.data.dto.AuthResponseDto import ru.myitschool.work.data.source.NetworkDataSource @@ -22,7 +22,7 @@ object AuthRepository { suspend fun checkAndSave(login: String, password: String): Result { val data = AuthRequestDto(login=login, password=password) return NetworkDataSource.checkAuth(data).onSuccess { success -> - val encryptedTokenCache = AESEncyption.encrypt(success.token) + val encryptedTokenCache = Base64Encoder.encrypt(success.token) tokenCache = encryptedTokenCache if (encryptedTokenCache != null) { App.context.userDataStore.edit { preferences -> @@ -41,9 +41,7 @@ object AuthRepository { preferences[stringPreferencesKey(TOKEN_KEY)] } } - if (tokenCache != null) { - return AESEncyption.decrypt(tokenCache) - } + tokenCache?.let { return Base64Encoder.decrypt(it) } return null } diff --git a/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt b/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt index dee42cb..a69e7b4 100644 --- a/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt +++ b/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt @@ -1,5 +1,6 @@ package ru.myitschool.work.data.source +import android.util.Log import io.ktor.client.HttpClient import io.ktor.client.call.body import io.ktor.client.engine.cio.CIO @@ -46,6 +47,7 @@ object NetworkDataSource { contentType(ContentType.Application.Json) setBody(data) } + Log.d("testlog", response.status.toString()) when (response.status) { HttpStatusCode.OK -> response.body() else -> error(response.bodyAsText())