java - 类似sha512的php for android密码登录

标签 java php android hash passwords

我有我的 php 应用程序,当我创建用户时,我运行了它。

    $random_salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
   // Create salted password 
    $userPwd = hash('sha512', $userPwd . $random_salt);

下一步,当我尝试登录时,我通过这个 javascript 捕获了我散列的密码 p.value = hex_sha512(userPwdControl.value);

然后在运行这个

$hashPassword = hash('sha512', $userPassword . $row1['userSalt']);

以上所有代码均通过 php 运行。

现在我想通过我的 android 执行此功能 p.value = hex_sha512(userPwdControl.value);获取哈希值,我首先通过 Java 代码进行尝试,如下所示。但是我在下面得到了空的结果。

StringBuffer stringBuffer = new StringBuffer();
         try {
                String message = "myPass";
                MessageDigest digest = MessageDigest.getInstance("512");
                byte[] hashedBytes = digest.digest(message.getBytes("UTF-8"));

                for (int i = 0; i < hashedBytes.length; i++) {
                    stringBuffer.append(Integer.toString((hashedBytes[i] & 0xff) + 0x100, 16)
                            .substring(1));
                }
                stringBuffer.toString();

            } catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {

            }
         System.out.println("TEST :"+stringBuffer);

最佳答案

你能试试下面的代码吗?对您的代码做了一些小改动。

        String resultString         =   "";
        try {
            byte[] buffer           =   password.getBytes();
            MessageDigest md        =   MessageDigest.getInstance("SHA-512");
            md.update(buffer);
            byte[] digest           =   md.digest();

            for(int i = 0 ; i < digest.length ; i++) {
                int b               =   digest[i] & 0xff;
                if(Integer.toHexString(b).length() == 1)
                    resultString    =   resultString + "0";
                resultString        =   resultString + Integer.toHexString(b);
            }
        } catch(NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

关于java - 类似sha512的php for android密码登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41009848/

相关文章:

java - Java 中的多数据类型数组

java - java中如何获取主线程?

php 文件加载不正确显示空白页

php - 如何使用 PEAR 邮件发送 html 邮件

java - 平均医学模式方法的两个问题

java - 使用 javax.tool 进行级联内存编译

php - 如何生成 RSS 提要?

java - 如何缓冲字节几秒钟然后发送它们

android - 设置应用程序的主题

java - 将 EditText 中的字符串转换为 Double