2010-12-15 7 views
0

私のアプリケーションでは、最初の訪問時にログインする必要があり、その後、これをSharedPreferencesに保存してアプリケーションを起動します。Androidの2つの異なるアクティビティでログインデータに安全にアクセスする

私はサインアウト機能を実装しようとしており、私はどのような最善の方法があるのだろうかと思っています。

現在のところ、LoginActivityとSignOutActivityは異なるスクリーン上に存在するため、別々のものです。理想的には、これらのアクティビティの両方がログインデータにアクセスし、それがまだ安全であるように設定を保存できるようにしたいと考えています。私はこれをどのように扱うべきだとお考えですか?

答えて

1

default SharedPreferencesを使用するか、どちらのアクティビティでも同じ名前のSharedPreferencesを取得してください。それらの全体のポイントは、彼らが共有されていることです:)私はあなたが少し考えているSharedPreferencesは実際に安全であるか、または孤立していると思います。彼らはそうではありません。 root権限を持つ人はcan read themです(ただし、root権限のない他のアプリはデフォルトでは使用できません)。パスワードなどを格納している場合は、それらを暗号化します。

SharedPreferencesのための3 modesがありますMODE_PRIVATEMODE_WORLD_READABLEMODE_WORLD_WRITEABLEMODE_PRIVATEは、デフォルトの最も制約の厳しいものですが、自分のアプリ(または自分で作成した他のアプリ)のアクティビティにもPreferencesに自由にアクセスできます(user ID)。

+0

Ahh、ok。ドキュメンテーションを読んだ後、彼らはアクティビティに縛られていると確信しましたが、名前を指定してそのようにアクセスしようとしていませんでした。セキュリティに関しては、パスワードを保存するより安全な方法がありますか?今、私はMD5ハッシュを使用しています。 – HenryAdamsJr

+0

md5はもう安全ではないことが証明されています。use sha1 – binnyb

+0

実際、sha1も「あまり安全でない」ことが証明されています。少なくともsha2(256/512)を使用してください。それがローカルで使用するための単なるパスワードであれば、私はSHA512のパスワードをそれに塩で書き込んだ後にします。もちろん、あなたのアプリのデータがパスワードを入力していなければ、暗号化されていない限り、rootを持つ人もそれにアクセスできます。パスワード保護を保証する実際のデータには、何らかの暗号化戦略を使用する必要があります。 –

関連する問題