Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6863377
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T02:46:31+00:00 2026-05-27T02:46:31+00:00

Yes this is a pretty general question but I’m trying to get a feel

  • 0

Yes this is a pretty general question but I’m trying to get a feel for the best way to handle an app that touches base w/ a webserver that distributes sensitive data to the app. Any links, general information advice etc.. would be appreciated.

Since the app would store persistant data retreived from the database for a certain amount of time.. everything becomes somewhat touchy.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T02:46:31+00:00Added an answer on May 27, 2026 at 2:46 am

    Storing sensitive data on the device

    That depends very much on your audience. Normally, the Android OS prohibits apps from accessing each other’s files (i.e. databases, preference files, regular files stored in the app’s private directory) through proven Linux file permissions. However, on rooted devices an application can obtain root access and read everything. A few things to think about:

    1. If you know your users won’t have root (e.g. if you are not distributing the app through Android Market, but only in your company, or something like that), you can simply rely on Android’s filesystem-based security.
    2. If a user does get root access, he will be very careful what application he gives that priviledge to
    3. If an app does get root access, it can wreak a lot of havoc. The information in your app could be the least of the user’s worries.
    4. Rooting leads to zero warranty. Including in apps. You can’t be held responsible for leaking information on a rooted phone.

    To conclude, if your information is not super-duper sensitive (e.g. credit card information), I’d suggest just sticking with the default security provided by Android (i.e. save everything in plain text, knowing other apps can’t access it).

    Otherwise, encryption is the way to go. It’s not 100% secure (a hacker could de-compile your app and figure out how to decrypt the data), but it’s a major pain to crack and will stop most hackers. Especially if you obfuscate your code with something like ProGuard.


    Transferring sensitive data from the server to the device

    You have a few options here. First of all, always use HTTPS. After enabling HTTPS, here are two extra security measures I would propose:

    1. Use an API key system. Include this API key in all your requests and check it on the server side before sending any response back. Remember that since you’re using HTTPS, an attacker would not be able to just use a network sniffer to find out your API key. However, this is pretty easy to figure out if someone decompiles your app, which is why you can obfuscate it even further (besides using ProGuard). For example, you can keep the API key broken up into pieces all around your code (for example as static members in two or three classes). Then, when you send a request, you just concatenate all those pieces. You can even apply some other sort of transformation (e.g. bit shifting) to make it even harder to figure out from the decompiled code.
    2. You can generate a key every time you send a request. That key would be generated by using a bit of logic that only you know, so that you can implement it client- and server-side as well. For example, a request could include the following parameters:
      time=1321802432&key=[generated-key]
      where generated-key is generated from the time parameter. For example: md5(time + salt). When the server receives this request, it can do two things:

      1. Check that key is indeed equal to md5(time + salt) (note that only the client and the server know the salt and it can be obfuscated similarly to the API key above), and
      2. Check that time is not too far back in the past (e.g. if it’s more than 1-2 minutes in the past, consider the request invalid).

    The second method is more useful if you are also doing plain HTTP requests, where everyone can see the parameters being sent. Also, it’s much harder to figure out from decompiled code. Especially if you spread the key calculation logic across multiple classes.

    However, note that nothing makes it impossible to crack your app. You can obfuscate as much as you want, if a hacker is really determined to get to your data, he will be able to so by decompiling your application and spending many sleepless nights passing through your code and figuring out how the requests are formed. The only real way of securing your data is by asking your user for a password, besides doing all the work I wrote about above. You can’t get a password that only exists in someone’s (the user) head from decompiled code :).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know the Sales pitch answer is yes to this question, but is it
This is a pretty strange issue, but I think it might be that I
yes this is an iOS programming question. I need to calculate the exact time
This question falls into the yes - this works, yes - this is ugly,
(Before anyone says anything Yes this was homework but i have already turned it
Yes, this is a programming-related question, if a little indirectly. For better or worse,
Yes, I've read this question & answers: Passing an array by reference in C?
Yes I know, this title isn't really helpfull but this is the exact problem.
I need a quick yes/no answer on this... Is it possible to get a
Yes, I realize this is horrible UI and bad accessibility wise, but I am

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.