Android 比较散列函数不需要';不能准确地比较

Android 比较散列函数不需要';不能准确地比较,android,Android,我想用用户输入比较两个哈希函数。如果双方都相等,那就为我干杯。这样做的目的是,我希望将来使用这种方法将哈希密码存储到数据库中,并与登录时的用户输入密码进行比较 我创建了两种输入类型,其中我通过输入给出字符串值并将其转换为散列值。当两种输入类型具有相同的值时,应该是Toast me,如果不是,则不要Toast me或给出错误 问题是,当我给出相同的值时,它会准确地让我敬酒,但当我给出两个不同的值时,它也会让我敬酒。这不是正确的结果 请告诉我如何比较这两个功能,并使登录方案 代码是: @Overr

我想用用户输入比较两个哈希函数。如果双方都相等,那就为我干杯。这样做的目的是,我希望将来使用这种方法将哈希密码存储到数据库中,并与登录时的用户输入密码进行比较

我创建了两种输入类型,其中我通过输入给出字符串值并将其转换为散列值。当两种输入类型具有相同的值时,应该是Toast me,如果不是,则不要Toast me或给出错误

问题是,当我给出相同的值时,它会准确地让我敬酒,但当我给出两个不同的值时,它也会让我敬酒。这不是正确的结果

请告诉我如何比较这两个功能,并使登录方案

代码是:

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


        value1 = (EditText) findViewById(R.id.value1);
        value2 = (EditText) findViewById(R.id.value2);

        computeSha = (Button) findViewById(R.id.btn1);

        result = (TextView) findViewById(R.id.textView2);

        //get username and password entered
        username = userName.getText().toString();
        passwd = passWord.getText().toString();

        //check if username or passwd is not null

        if ((username != null && username.equals("")) || (passwd != null && passwd.equals(""))) {

            computeSha.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    //call method to compute SHA hash
                    computeSHAHash(value1);
                    computeSHAHash(value2);
                    if (computeSHAHash(value1).equals(computeSHAHash(value2))) {
                        Toast.makeText(MainActivity.this, "matched", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }


    private String convertToHex(byte[] data) throws java.io.IOException
    {

        StringBuffer sb = new StringBuffer();
        String hex=null;

        hex=Base64.encodeToString(data, 0, data.length, NO_OPTIONS);

        sb.append(hex);

        return sb.toString();
    }


    public String computeSHAHash(String password)
    {
        MessageDigest mdSha1 = null;
        try
        {
            mdSha1 = MessageDigest.getInstance("SHA-512");
        } catch (NoSuchAlgorithmException e1) {
            Log.e("myapp", "Error initializing SHA1 message digest");
        }
        try {
            mdSha1.update(password.getBytes("ASCII"));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        byte[] data = mdSha1.digest();
        try {
            SHAHash=convertToHex(data);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        result.setText("SHA-1 hash generated is: " + " " + SHAHash);
        return SHAHash;
    }   
哈希函数:

private String convertToHex(byte[] data) throws java.io.IOException
    {

        StringBuffer sb = new StringBuffer();
        String hex=null;

        hex=Base64.encodeToString(data, 0, data.length, NO_OPTIONS);

        sb.append(hex);

        return sb.toString();
    }


    public String computeSHAHash(String password)
    {
        MessageDigest mdSha1 = null;
        try
        {
            mdSha1 = MessageDigest.getInstance("SHA-512");
        } catch (NoSuchAlgorithmException e1) {
            Log.e("myapp", "Error initializing SHA1 message digest");
        }
        try {
            mdSha1.update(password.getBytes("ASCII"));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        byte[] data = mdSha1.digest();
        try {
            SHAHash=convertToHex(data);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        result.setText("SHA-1 hash generated is: " + " " + SHAHash);
        return SHAHash;
    }