2012-02-19 13 views
8

मैंने अपना पहला ऐप बनाया है, और मैं पासवर्ड को सुरक्षित रखना चाहता हूं। जावा फाइलों में पासवर्ड स्टोर करना मेरे लिए ठीक है और विधि को जितना संभव हो सके उतना आसान होना चाहिए क्योंकि मुझे इस ऐप से पहले जावा या एक्सएमएल का कोई अनुभव नहीं है। मेरे पास कुछ प्रयास किए गए हैं और असफल रहे हैं इसलिए मैं उम्मीद कर रहा था कि कोई मेरी मदद कर सके।पासवर्ड मेरे एंड्रॉइड ऐप की सुरक्षा (सरल तरीका)

मैं एक EditText क्षेत्र के साथ लेआउट बना लिया है:

<EditText 
android:id="@+id/passwordedittext" 
android:layout_width="200dp" 
android:layout_height="50dp" 
android:inputType="textPassword" 
android:layout_marginTop="40dp" 
android:layout_marginLeft="20dp"> 
<requestFocus /> 

और एक बटन सबमिट करें:

<Button 
android:id="@+id/submitbutton" 
android:layout_width="50dp" 
android:layout_height="50dp" 
android:layout_marginTop="40dp" 
android:background="@drawable/bgo" 
android:clickable="true" 
android:layout_gravity="right|center_horizontal" 
android:layout_marginRight="20dp"/> 

जावा फ़ाइल:

package com.berry; 
import android.app.Activity; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.Button; 
import android.widget.EditText; 


public class password extends Activity{ 

MediaPlayer mpbuttonclick; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

    setContentView(R.layout.password); 

    mpbuttonclick = MediaPlayer.create(this, R.raw.keypress); 

    Button sumbitButton = (Button) findViewById(R.id.submitbutton); 
    sumbitButton.setOnClickListener(new View.OnClickListener() {   
     public void onClick(View v){ 
     EditText passwordEditText = (EditText) findViewById(R.id.passwordedittext); 
        if(passwordEditText.getText().toString()=="MyPasswordHere"){ 
         startActivity(new Intent("com.berry.intro")); 
         mpbuttonclick.start(); 


        }}}); 
    }} 

उत्तर

12

यह भाग:

if(passwordEditText.getText().toString()=="MyPasswordHere") 

गलत है। जब आदिम डेटा प्रकार की तुलना यह

if(passwordEditText.getText().toString().equals("MyPasswordHere")) 

होना चाहिए (जैसे int, char, boolean) आप ==, !=, आदि का उपयोग कर सकते
जब की तुलना वस्तुओं (जैसे String, Car, आदि) आप का उपयोग करने की आवश्यकता है .equals() विधि।

See also this page.

+0

धन्यवाद यह चाल है! – SuperKombol

-6

संपादित पाठ क्षेत्र एक्सएमएल में आप

android:password="true" 
+1

इस ध्वज का उपयोग करके संपादन टेक्स्ट को वास्तविक वर्ण दिखाने के बजाय पासवर्ड डॉट्स बनाकर आपके ऐप में सुधार होगा, लेकिन यह ध्वज आपके द्वारा की जा रही समस्याओं को ठीक नहीं करेगा। –

+0

संपादन टेक्स्ट बॉक्स डॉट्स को वैसे भी दिखाता है क्योंकि इनपुट टाइप को xml में टेक्स्टपासवर्ड के रूप में परिभाषित किया गया है। धन्यवाद। – SuperKombol

9

यह सुरक्षित कोई रास्ता नहीं है कि तरह अपने पासवर्ड की जांच करने के लिए है जोड़ सकते हैं। आसानी से अपने कोड

  1. एक और अनुप्रयोग

  2. से सीधे गतिविधि कॉलिंग पासवर्ड

  3. कोड संशोधित करने को पुनः प्राप्त करने disassembled smali code पढ़ना बायपास करने के लिए

    ऐसे कई तरीके हैं हमेशा कॉलब्लॉक में कूदने के लिए स्माली का उपयोग

समाधान इन समस्याओं को हल करने के लिए उपलब्ध:

  1. अस्पष्ट अपने कोड (सबसे खराब विकल्प है, लेकिन ज्यादातर मामलों में पर्याप्त हो सकता है)

  2. तुलना Hashed Password: बहुत अधिक सुरक्षित। लेकिन एक नमकीन हैश होना चाहिए। (There is also a more simple to understand explaination for the implementation)

  3. तुम्हारा एक सर्वर से Use a HTTP Request पासवर्ड चेक पीछे तंत्र को छिपाने के लिए।(लेकिन इसके लिए आपके ऐप को नेटवर्किंग अनुमतियों के लिए पूछने की आवश्यकता है)

+1

हम्म, क्योंकि जावा में पूछताछ कमजोर है, मैं समाधान दो की सिफारिश करता हूं, जिसे इस तरह कार्यान्वित किया जा सकता है: 'SHA1.Sha1Hash (passwordGoesHere);' –

+1

टिप के लिए धन्यवाद, मैंने उस समस्या को दूर करने के लिए एक लिंक जोड़ा है। – devsnd

+0

सलाह के लिए धन्यवाद, जब मैं कुछ और अधिक महत्वपूर्ण बनाता हूं तो मैं आपके समाधानों को देखूंगा। – SuperKombol

संबंधित मुद्दे