Pergunta

Estou usando FPS incríveis e tenho que armazenar a chave secreta no código Java. No entanto, receio que alguém descompileza meu APK e encontre a chave. Eu me descompusei o APK e não consegui encontrar a chave, mas não sou um especialista em VM. Qualquer ajuda?

Foi útil?

Solução

Você não pode colocar sua chave de criptografia em seu aplicativo e esperar que ela permaneça em segredo. Só é preciso um programador determinado para descompilar e encontrar a chave, e eles podem compartilhá -la com o mundo.

A criptografia assimétrica/com chave pública é exatamente a solução que você deseja. Crie um par público/privado, coloque a chave pública em seu aplicativo e mantenha a chave privada. Então você pode fazer duas coisas:

  • Seu aplicativo pode Encrypt Uma mensagem usando a chave pública, que só pode ser descriptografada usando a chave privada.
  • Ou você pode sinal Uma mensagem usando a chave privada, que pode ser autenticada usando a chave pública em seu aplicativo.

Outras dicas

Um indivíduo determinado o suficiente será capaz de extrair sua chave, e realmente não há muito que possa ser feito sobre isso. Você pode tentar ofuscar as chaves de alguma forma (levantando a fasquia sobre o quão determinado elas precisam ser), mas não pode impedir que elas recebam a chave.

No entanto, dependendo de por que você precisa armazenar a chave secreta, você pode usar Criptografia chave assimétrica. Você poderá armazenar uma chave pública que pode estar limitada à criptografia (não descriptografia) ou fins de autenticação, enquanto é capaz de manter a chave privada em segurança.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top