Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android的MD5哈希_Java_Android_Hash - Fatal编程技术网

Java Android的MD5哈希

Java Android的MD5哈希,java,android,hash,Java,Android,Hash,好吧,这是我的问题。我正在尝试用MD5哈希加密字符串。以下是我试图散列的字符串:njljnwzzwjhytyyju2mgvhzja2yznmymvindgxywu0ngi4zdyxoa== 以下是预期输出:aaf53a928ca9baa6df03a5fe6e3c7b71 以下是我在Android应用程序中得到的信息:3cc9a8b9d101349af1b4e17ae3b7450f 现在,我使用以下代码来完成此操作: public final String computeMD5Hash(final

好吧,这是我的问题。我正在尝试用MD5哈希加密字符串。以下是我试图散列的字符串:
njljnwzzwjhytyyju2mgvhzja2yznmymvindgxywu0ngi4zdyxoa==

以下是预期输出:
aaf53a928ca9baa6df03a5fe6e3c7b71

以下是我在Android应用程序中得到的信息:
3cc9a8b9d101349af1b4e17ae3b7450f

现在,我使用以下代码来完成此操作:

public final String computeMD5Hash(final String pass){
    try {
        // Create MD5 Hash
        MessageDigest digest = MessageDigest.getInstance("MD5");
        digest.update(pass.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i < messageDigest.length; i++) {
            String h = Integer.toHexString(0xFF & messageDigest[i]);
            while (h.length() < 2)
                h = "0" + h;
            hexString.append(h);
        }
        System.out.println(hexString.toString());
        return hexString.toString();

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

    return "";
public final String computeMD5Hash(final String pass){
试一试{
//创建MD5散列
MessageDigest=MessageDigest.getInstance(“MD5”);
update(pass.getBytes());
字节messageDigest[]=digest.digest();
//创建十六进制字符串
StringBuffer hexString=新的StringBuffer();
for(int i=0;i
在Android上运行这段代码时,我得到了上面意想不到的结果,但当我运行这段代码时,就像java程序传递相同的字符串一样,我得到了预期的输出

到底发生了什么事?我已经被难住了好几天,在互联网上搜寻线索。我尝试过将字节更改为UTF-8、ASCII、ISO-8859-1,并使用默认值。总是得到相同的不正确字符串

------编辑-------解决方案------


我明白了,我使用的是Base64.encodeToString(字节,Base64.Default)我本应该使用Base63.NO_WRAP flag选项的…正在输入一个换行符并将所有内容都丢弃。谢谢大家,看来您输入的字符串一定是错误的。我刚刚亲自运行了您的代码,输出是:aaf53a928ca9baa6df03a5fe6e3c7b71

我直接将传入的字符串设置为您提供的字符串


自己测试一下。删除最后一个字符串并显式设置pass的值为njljnwzjwjhytyyju2mgvhzja2yznmymvindgxywu0ngi4zdyxoa==

此处相同。检查您的输入:)是的!您完全正确,当我在Android应用程序中硬编码它时,我得到了预期的输出。只需找出它没有被正确传递的原因。谢谢太多了,真不敢相信我居然没想过把它硬编码到Android应用程序中