From 72c257c004d520851205c0cf0482a367c80cae76 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 19 十二月 2023 14:10:25 +0800
Subject: [PATCH] 密钥保存在cpp文件里 防止反编破解
---
app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java | 27 +++++++++++++++------------
1 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java b/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
index 49e1fad..71145f1 100644
--- a/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
@@ -1,5 +1,6 @@
package com.dayu.recharge.tools;
+import android.app.Activity;
import android.util.Base64;
import java.nio.charset.StandardCharsets;
@@ -34,13 +35,21 @@
String companyKeyB;
- public BaseNFCHelper() {
+ static {
+ System.loadLibrary("native-lib");
+ }
+
+ public native String getSafeKey(Object object);
+
+ public BaseNFCHelper(Activity activity) {
// 瑙e瘑瀛楃涓�
try {
//鍒濆瀵嗙爜
byte[] encryptedBytes = Base64.decode("orDiGzvueQqPpU+VQ3NEzQ==", Base64.DEFAULT);
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
- byte[] encodedKey = {-117, -104, -100, 84, 111, -102, -29, -21, 72, -82, -105, 123, 77, 79, 17, -55, -102, -28, 50, 23, 67, 98, 0, -96, -10, -48, -60, 81, 113, 80, -32, -26};
+ String data = getSafeKey(activity);
+ byte[] encodedKey = HexUtil.hexToByteArray(data);
+// byte[] encodedKey = {-117, -104, -100, 84, 111, -102, -29, -21, 72, -82, -105, 123, 77, 79, 17, -55, -102, -28, 50, 23, 67, 98, 0, -96, -10, -48, -60, 81, 113, 80, -32, -26};
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(encodedKey, "AES"));
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
@@ -55,19 +64,13 @@
//淇敼鍚庣殑瀵嗙爜
byte[] encryptedBytes3 = Base64.decode("n+SSZFb4DHsreVav/Z5ftg==", Base64.DEFAULT);
byte[] decryptedBytes3 = cipher.doFinal(encryptedBytes3);
+
companyKeyB = new String(decryptedBytes3, StandardCharsets.UTF_8);
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException(e);
- } catch (NoSuchPaddingException e) {
- throw new RuntimeException(e);
- } catch (InvalidKeyException e) {
- throw new RuntimeException(e);
- } catch (BadPaddingException e) {
- throw new RuntimeException(e);
- } catch (IllegalBlockSizeException e) {
- throw new RuntimeException(e);
+ } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException |
+ BadPaddingException | IllegalBlockSizeException e) {
+ e.printStackTrace();
}
}
}
--
Gitblit v1.8.0