2012-02-19 32 views
8

Tôi đã tạo ứng dụng đầu tiên và tôi muốn bảo vệ mật khẩu. Nó là tốt cho tôi để lưu trữ mật khẩu trong các tập tin Java và phương pháp cần phải càng đơn giản càng tốt bởi vì tôi không có kinh nghiệm của java hoặc thậm chí xml trước khi ứng dụng này. Tôi đã có một vài nỗ lực và thất bại vì vậy tôi đã hy vọng ai đó có thể giúp tôi.Mật khẩu bảo vệ ứng dụng android của tôi (theo cách đơn giản)

tôi đã tạo ra cách bố trí với một lĩnh vực 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 /> 

và một nút gửi:

<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"/> 

Các tập tin Java:

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(); 


        }}}); 
    }} 

Trả lời

12

này một phần:

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

không chính xác. Nó phải là

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

Khi so sánh các kiểu dữ liệu nguyên thủy (như int, char, boolean), bạn có thể sử dụng ==, != vv
đối tượng Khi so sánh (như String, Car, vv), bạn cần phải sử dụng .equals().

See also this page.

+0

Cảm ơn bạn đã thực hiện thủ thuật! – SuperKombol

-6

Trong chỉnh sửa trường văn bản xml bạn có thể thêm

android:password="true" 
+1

Sử dụng cờ này sẽ cải thiện ứng dụng của bạn bằng cách làm cho văn bản chỉnh sửa có dấu chấm mật khẩu thay vì hiển thị các ký tự thực tế, nhưng cờ này sẽ không khắc phục được sự cố bạn đang gặp phải. –

+0

Hộp văn bản chỉnh sửa hiển thị các chấm kể từ khi inputtype được định nghĩa là textpassword trong xml. Cảm ơn. – SuperKombol

9

Đó là trong không an toàn cách để kiểm tra mật khẩu của bạn như thế.

Có một số cách để dễ dàng bỏ qua mã của bạn

  1. Calling hoạt động trực tiếp từ một ứng dụng

  2. Đọc tháo rời smali code để lấy mật khẩu

  3. Sửa đổi mã sử dụng smali để luôn nhảy vào mã khóa

Giải pháp có sẵn để giải quyết những vấn đề này:

  1. Obscure mã của bạn (tùy chọn tồi tệ nhất, nhưng có thể là đủ trong hầu hết các trường hợp)

  2. So sánh Hashed Password: Phần lớn an toàn hơn. Nhưng nên là một Hash muối. (There is also a more simple to understand explaination for the implementation)

  3. Use a HTTP Request với máy chủ của bạn để ẩn cơ chế đằng sau kiểm tra mật khẩu.(Nhưng điều đó yêu cầu ứng dụng của bạn yêu cầu Quyền mạng)

+1

Hmm, như người hỏi là yếu trong java tôi muốn giới thiệu giải pháp hai, có thể được thực hiện như thế này: 'SHA1.Sha1Hash (passwordGoesHere);' –

+1

Cảm ơn lời khuyên, tôi đã thêm một liên kết để khắc phục vấn đề đó. – devsnd

+0

Cảm ơn lời khuyên, tôi sẽ xem xét các giải pháp của bạn khi tôi xây dựng thứ gì đó quan trọng hơn. – SuperKombol

Các vấn đề liên quan