Я начинающий Java-программист.Я работаю над приложением, которое расшифровывает некоторые данные.Ключ дешифрования жестко закодирован в программном обеспечении и, таким образом, его можно увидеть, проанализировав байт-код.
Я знаю, что реверс-инжиниринг нельзя полностью предотвратить, поэтому я пытаюсь сделать процесс как можно более сложным.
Моя идея не в том, чтобы напрямую вставить ключ в мой код, а в то, чтобы он прошел через какое-то преобразование.Например, я мог бы написать -
private static final byte[] HC256A = Hex
.decode("8589075b0df3f6d82fc0c5425179b6a6"
+ "3465f053f2891f808b24744e18480b72"
+ "ec2792cdbf4dcfeb7769bf8dfa14aee4"
+ "7b4c50e8eaf3a9c8f506016c81697e32");
Таким образом, кто-то, смотрящий на байт-код, не может сразу его прочитать.Но придется следовать логике и применять к ней преобразования, что не будет намного проще на уровне байтов.
Так что вы, ребята, думаете?Это полезно?Что может быть лучшим преобразованием, кроме шестнадцатеричного декодирования?Существуют ли другие способы защиты ключей шифрования с жестким кодом?
Спасибо за все ваши предложения.