当前位置: 首页 > 面试题库 >

Java和php5 MD5哈希之间的区别

危彬彬
2023-03-14
问题内容

我面临着一个奇怪的问题,它与Java和php5中的MD5-Hashes有关。我发现在某些情况下,以下代码无法生成正确的MD5哈希值:

public static String getMD5Hash(String string)
{
    try 
    {
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(string.getBytes());
        byte[] digest = md5.digest();

        string = byteArrToHexString(digest);
    } 
    catch (NoSuchAlgorithmException e1) 
    {
        e1.printStackTrace();
    }

    return string;
}

private static String byteArrToHexString(byte[] bArr)
{
    StringBuffer sb = new StringBuffer();

    for (int i = 0; i < bArr.length; i++) 
    {
        int unsigned = bArr[i] & 0xff;
        sb.append(Integer.toHexString((unsigned)));
    }

    return sb.toString();
}

我不得不迁移现有的用户数据库,密码存储在php5 MD5中。现在,部分用户(并非全部)无法登录,因为我的Java代码无法生成正确的MD5哈希。

任何想法上面有什么问题吗?


问题答案:

byteArrToHexString 无法正确转换<0x10字节,则需要用零填充。

例:

int unsigned = bArr[i] & 0xff;
if (unsigned < 0x10)
  sb.append("0");
sb.append(Integer.toHexString((unsigned)));


 类似资料:
  • 问题内容: 我在Java中有以下代码: 以及C#中的以下代码: 字节数组“ secretKey”和“ bytes”是等效的,但字节数组“ rawHmac”不同,字符串“ result”不同。谁能看到原因? 问题答案: 不要这样做: 这将使用平台默认编码将字符串转换为字节数组。平台之间可能会有所不同,而您想要一些可重复的东西。我建议使用UTF-8: (当然,对密钥执行相同的操作。) 然后,您应该在C

  • 本文向大家介绍Java中的树集和哈希集之间的区别,包括了Java中的树集和哈希集之间的区别的使用技巧和注意事项,需要的朋友参考一下 哈希集和树集都属于集合框架。HashSet是Set接口的实现,而Tree set实现排序的集。树集由TreeMap支持,而HashSet由哈希映射支持。 序号 键 哈希集 树集 1 实作  哈希集是使用HashTable实现的  树集是使用树结构实现的。  2 空对象

  • 本文向大家介绍Java中并发哈希映射和同步哈希映射之间的区别,包括了Java中并发哈希映射和同步哈希映射之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  同步hashmap(Collection.syncronizedHashMap())是C

  • 问题内容: 我有一个大问题。我使用此C#函数对消息进行编码: 在Java方面,我使用以下代码段: 我的消息是:阻止|注释|文本!£$%&/()=?^€> <{}ç°§;:_-。,@#ùàòè+ 我有这个结果: 你能帮我吗??谢谢… 问题答案: 我的猜测是您似乎正在将ASCII字节与Latin1字节进行比较。尝试切换 对此 那可能会解决您的问题。 (或切换C#以使用Latin1) 程序中发生的事情是

  • 问题内容: 对于我正在开发的应用程序,nodejs需要验证PHP创建的哈希,反之亦然。 问题是,在node.js中测试时,PHP中生成的哈希(通过仅使用PHP 函数的Laravel 类)返回false。 以下node.js脚本: 输出:“ PHP失败的nodejs通过”,而以下PHP脚本: 输出“ PHP通过的nodejs通过的”。 我已经在Ubuntu 14.04.1中使用PHP 5.5.18,

  • 本文向大家介绍Java和JavaScript之间的区别。,包括了Java和JavaScript之间的区别。的使用技巧和注意事项,需要的朋友参考一下 众所周知,Java和javascript都是编程语言,并在应用程序开发中使用。但是我们将在下面讨论的两种语言之间存在显着差异。 以下是Java和JavaScript之间的重要区别。 序号 键 爪哇 的JavaScript 1个 语言类型 JavaScr