Commit 26d4bfaf authored by wanglei's avatar wanglei

+干掉混淆+和加密。

parent 64c94ed8
This diff is collapsed.
package com.base.easyfilemanager.helps
import android.util.Base64
import java.security.SecureRandom
import javax.crypto.Cipher
import javax.crypto.spec.GCMParameterSpec
import javax.crypto.spec.SecretKeySpec
object AESHelper {
private const val aesKey = "bt8n2r8wdqk30wcu"
private val cipher by lazy {
Cipher.getInstance("AES/GCM/NoPadding")
}
fun encrypt(content: String): String {
try {
val iv = ByteArray(12).apply {
SecureRandom().nextBytes(this)
}
val contentBytes = content.toByteArray(Charsets.UTF_8)
val params = GCMParameterSpec(128, iv)
cipher.init(
Cipher.ENCRYPT_MODE,
secretKey, params
)
val encryptData = cipher.doFinal(contentBytes)
assert(encryptData.size == contentBytes.size + 16)
val message = ByteArray(12 + contentBytes.size + 16)
System.arraycopy(iv, 0, message, 0, 12)
System.arraycopy(encryptData, 0, message, 12, encryptData.size)
return String(Base64.encode(message, Base64.NO_WRAP), Charsets.UTF_8)
} catch (_: Exception) {
}
return content
}
@Synchronized
fun decrypt(content: String): String {
try {
val con = content.replace(" ".toRegex(), "+")
val contentByte = Base64.decode(con, Base64.NO_WRAP)
require(contentByte.size >= 12 + 16)
val params = GCMParameterSpec(128, contentByte, 0, 12)
cipher.init(
Cipher.DECRYPT_MODE,
secretKey, params
)
val decryptData = cipher.doFinal(contentByte, 12, contentByte.size - 12)
return String(decryptData, Charsets.UTF_8)
} catch (_: Exception) {
}
return content
}
private val secretKey by lazy {
SecretKeySpec(aesKey.toByteArray(), "AES")
}
}
\ No newline at end of file
package com.base.easyfilemanager.helps
import android.content.Context
import android.util.AttributeSet
import com.noober.background.view.BLTextView
import com.base.easyfilemanager.helps.KotlinExt.decode
class AESTextView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : BLTextView(context, attrs) {
override fun setText(text: CharSequence?, type: BufferType?) {
super.setText(text?.toString()?.run { decode().takeIf { it != this } } ?: text, type)
}
}
\ No newline at end of file
package com.base.easyfilemanager.helps
object BlackHelps {
// private val url by lazy {
// val pkg = ConfigHelper.packageName
// val url = StringBuilder(
// "${ConfigHelper.apiUrl}/${
// pkg.filter { it.isLowerCase() }.substring(4, 9)
// }cl"
// )
// url.append("?pkg=$pkg")
// url.toString()
// }
//
// val client = OkHttpClient.Builder().apply {
// if (BuildConfig.DEBUG) {
// addInterceptor(HttpLoggingInterceptor().apply {
// level = HttpLoggingInterceptor.Level.BODY
// })
// }
// }.build()
// fun getBlackList() {
// val data = JSONObject()
// val pkg = BaseApplication.context.packageName
// val s = JSONObject()
//// .put("${pkg}_1", "${ScreenUtils.getScreenHeight()}")
//// .put("${pkg}_2", "${ScreenUtils.getScreenWidth()}")
//// .put("${pkg}_3", DeviceUtils.getModel())
// .put("${pkg}_4", Build.MANUFACTURER)
// .put("${pkg}_5", Build.VERSION.SDK_INT)
//// .put("${pkg}_8", AppUtils.getAppVersionName())
//// .put("${pkg}_9", DeviceUtils.getAndroidID())
// .put("${pkg}_10", ConfigHelper.gid)
// .put("${pkg}_11", System.getProperty("http.agent"))
// .put("${pkg}_13", "android")
// // .put("${pkg}_14", "${AppUtils.getAppVersionCode()}")
// .put("${pkg}_15", "google")
// .put("${pkg}_24", BuildConfig.BUILD_TYPE)
// data.put("bp", s)
// val body = AESHelper.encrypt(data.toString()).toRequestBody("application/json;charset=utf-8".toMediaTypeOrNull())
// val request = Request.Builder()
// .post(body)
// .url(url)
// .build()
// client.newCall(request).enqueue(object : Callback {
// override fun onFailure(call: Call, e: IOException) {
//
// }
//
// override fun onResponse(call: Call, response: Response) {
// response.body?.string()?.let {
// Regex("\"data\":\"(.*?)\"").find(it)!!.groupValues[1]
// }?.let { data2 ->
// val booleanS = AESHelper.decrypt(data2)
// AdmobUtils.isBlack = booleanS.contains("true")
// }
// }
// })
//
// }
}
\ No newline at end of file
...@@ -8,47 +8,13 @@ import java.util.Locale ...@@ -8,47 +8,13 @@ import java.util.Locale
object KotlinExt { object KotlinExt {
private val aesMap = mutableMapOf<Int, String>()
fun Int.string(vararg arg: Any) = try {
(aesMap[this] ?: BaseApplication.context.getString(this).decode()).run {
aesMap[this@string] = this
String.format(this, *arg)
}
} catch (_: Exception) {
""
}
fun String.decode() = AESHelper.decrypt(this)
.replace("\\r", "\r")
.replace("\\n", "\n")
.replace("\\'", "'")
.replace("\\\"", "\"")
.replace("\\?", "?")
.replace("&amp;", "&")
fun Collection<View>.setOnClickListener(listener: (View) -> Unit) { fun Collection<View>.setOnClickListener(listener: (View) -> Unit) {
this.forEach { this.forEach {
it.setOnClickListener(listener) it.setOnClickListener(listener)
} }
} }
fun View.setTrackedOnClickListener(action: (view: View) -> Unit) {
setOnClickListener {
action(this)
var view: View? = this
while (view != null) {
try {
val obj = JSONObject()
obj.put("view_id", resources.getResourceEntryName(view.id))
break
} catch (_: Exception) {
view = view.parent as? View
}
}
}
}
fun Number.toFormatSize(count: Int = 1): String { fun Number.toFormatSize(count: Int = 1): String {
var suffix = "B" var suffix = "B"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment