1

我必须创建一个Activity从用户那里获取用户名和密码的。然后它将 MD5 哈希应用于密码,最后查询本地数据库以返回“true”或“false”。

我从博客中获得了 MD5 代码片段。代码片段在 Eclipse 上显示以下错误:

标记的第 1 行:此行有多个标记

  • 标记的语法错误,错误的构造
  • 语法错误,插入“枚举标识符”以完成 EnumHeader
  • 标记“字符串”的语法错误,@ 预期
  • 标记“字符串”的语法错误,@ 预期

标记的第 2 行:标记上的语法错误,错误的构造

标记的第 3 行:标记上的语法错误,错误的构造

标记的第 4 行:此行有多个标记

  • 令牌“catch”上的语法错误,需要标识符
  • 令牌“}”上的语法错误,{ 应在此令牌之后

我对 java 和 Android 环境都非常陌生。请告诉我代码有什么问题以及我应该将 md5 散列函数的代码放在哪里以使我的活动正常工作。另外请指导我查询本地 SQLite 数据库并从那里返回所需的值。

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

private String md5(String in) {  //line 1
    MessageDigest digest;        //line 2
    try {                        //line 3
        digest = MessageDisgest.getInstance("MD5");
        digest.reset();
        digest.update(in.getBytes());
        byte[] a = digest.digest();
        int len = a.length;
        StringBuilder sb = new StringBuilder(len << 1);
        for(int i=0;i<len;i++) {
            sb.append(Character.forDigit((a[i] & 0xf0) >> 4, 16));
            sb.append(Character.forDigit(a[i] & 0x0f, 16));
        }
        return sb.toString();
    } catch (NoSuchAlgorithmException e) { e.printStackTrace();} //line 4
    return null;

}

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText text = (EditText)findViewById(R.id.editText1);
            EditText text1 = (EditText)findViewById(R.id.editText2);
            String userid = text.getText().toString();
            String pass = text1.getText().toString();
        Toast.makeText(MainActivity.this,"Entered"+userid+"and password entered is"+pass,Toast.LENGTH_SHORT).show();
        }

    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}
4

1 回答 1

4

在 Java 中,所有方法都必须存在类中。

public class MainActivity extends Activity {
    private String md5(String in) {
        // etc
    }

    // Rest of class
}

我对 java 和 android 环境都非常陌生。

您会从阅读教程或介绍中发现很多好处,例如从语言作者那里学习 Java 语言

于 2013-03-07T20:01:03.713 回答