Как защитить ключ дешифрования от декомпиляции?

Я начинающий программист на java. Я работаю над приложением, которое расшифровывает некоторые данные. Ключ дешифрования жестко запрограммирован в программном обеспечении, и поэтому его можно увидеть, проанализировав байт-код.

Я знаю, что обратное проектирование невозможно полностью предотвратить, поэтому я пытаюсь сделать процесс как можно сложнее.

] Моя идея состоит не в том, чтобы напрямую вводить ключ в мой код, а в том, чтобы он прошел через какое-то преобразование. Например, я мог бы написать -

private static final byte[] HC256A = Hex
            .decode("8589075b0df3f6d82fc0c5425179b6a6"
                    + "3465f053f2891f808b24744e18480b72"
                    + "ec2792cdbf4dcfeb7769bf8dfa14aee4"
                    + "7b4c50e8eaf3a9c8f506016c81697e32");

Таким образом, кто-то, смотрящий на байт-код, не сможет сразу его прочитать. Но придется следовать логике и применять к ней преобразования, что не будет намного проще на уровне байтов.

Так что вы, ребята, думаете? Это полезно? Что может быть лучшим преобразованием, кроме шестнадцатеричного декодирования? Существуют ли другие методы защиты жестко запрограммированных ключей дешифрования?

Спасибо за все ваши предложения.

6
задан Robin Green 20 May 2011 в 09:36
поделиться