【问题标题】:Checksum Hash MD5 Program Error校验和哈希 MD5 程序错误
【发布时间】:2015-09-14 11:09:22
【问题描述】:

我尝试为 Android 制作一个简单的应用程序,用于从 TextBox/EditView 的字符串和一个按钮生成哈希 MD5。我的校验和 MD5 android 程序不幸停止了。我尝试了很多方法从该字符串中获取 MD5 哈希,但从未成功。这是我的代码。

public class MainActivity extends Activity {

    private static final String TAG = "MD5";
    //private TextView textView_hasil;

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

        Button button1 = (Button)findViewById(R.id.button1);
        Button button2 = (Button)findViewById(R.id.button2);
        final EditText editText1 = (EditText)findViewById(R.id.editText1);
        final TextView textView3 = (TextView)findViewById(R.id.textView3);
        final String   EditText1 = editText1.getText().toString();


        button1.setOnClickListener(new OnClickListener()
        {


            @Override
            public void onClick(View v)
            {
               hitungMD5(EditText1);
            }
        });

        button2.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                editText1.setText("");
                textView3.setText("");
            }
        });

    }

    public void hitungMD5(String editText1) {
        // TODO Auto-generated method stub

        try {
            // Create MD5 Hash
            MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
            digest.reset();
            digest.update(editText1.getBytes());
            byte messageDigest[] = digest.digest();

            // Create Hex String
            StringBuffer MD5Hash = new StringBuffer();
            for (int i = 0; i < messageDigest.length; i++) {
                MD5Hash.append(Integer.toHexString(0xFF & messageDigest[i]));
            }
            TextView textView3 = null;
            textView3.setText(MD5Hash);


        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

    }

【问题讨论】:

  • 把你的logcat...它很可能会有一个例外,它的详细信息...

标签: java android md5


【解决方案1】:

你正在调用editText的getBytes()方法:digest.update(editText1.getBytes());

我认为您应该在此处提供编辑文本的文本值,例如:

digest.update(editText1.getText().getBytes());

那么它应该可以工作。

【讨论】:

  • String类型的getText()方法未定义
  • 我也这样做了。 final String EditText1 = editText1.getText().toString();
  • 然后在这里发布 logcat。
猜你喜欢
  • 1970-01-01
  • 2022-09-23
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
相关资源
最近更新 更多