当前位置: 首页 > 知识库问答 >
问题:

类似的sha512的PHP为Android密码登录

羊舌昆杰
2023-03-14

我有我的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);

共有2个答案

宰子琪
2023-03-14

您的问题似乎已经解决了,但我强烈建议您切换到更安全的哈希算法。单个SHA-512无法保护用户密码,因为它的速度太快(每秒1GA SHA-512),因此很容易被强制使用。

您需要的是具有成本因子的哈希函数,如BCrypt、PBKDF2或SCrypt。PHPs函数password_hash()目前实现了BCrypt,这是一个可以通过jBCrypt获得的兼容实现。

班昱
2023-03-14

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

        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();
        }
 类似资料:
  • 我正在编写一个小应用程序,将其用作微服务的身份验证服务器。(我们正在划分一个旧的单片应用程序)。 此应用程序必须通过LDAP服务器(受用户名和密码保护)登录。用户密码存储为SHA512哈希。但我总是会遇到“糟糕的凭证”错误 这是我的密码 网络安全配置。JAVA 波姆。xml HomeController.java applicationContext安全性。来自当前可用的旧应用程序的xml

  • 这是一款类似Twitter登陆框效果的插件。 在线演示:http://aext.net/example/twitterlogin/

  • 本文向大家介绍JavaScript SHA512加密算法详细代码,包括了JavaScript SHA512加密算法详细代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JavaScript SHA512加密算法,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注呐喊教程的最新内容。

  • 我得到了3页:success.html,login.php,checklogin.php.我还创建了一个名为userInfo的mysql数据库表。表“userInfo由3个用户组成:David,Jane,Richard。当我使用userInfo中的用户David输入用户名和密码时,它会指向success.html,它会显示“登录成功”。但是当我输入Mary作为我的用户名和Mary作为我的密码时,它

  • 本文向大家介绍Android登录时密码保护功能,包括了Android登录时密码保护功能的使用技巧和注意事项,需要的朋友参考一下 在很多的Android项目中都需要用户登录、注册。这样的话在开发中做好保护用户密码的工作就显得尤为重要。这里我把自己的密码保护方法记录下来。 这是我建了一个保存密码的文件,以便于检查自己保存密码或者上传到服务器的时候密码是否已经被保护了。这就是当我输入用户名和密码之后点击

  • 多亏了最近一篇文章中的一些好建议,我才从中实现了PBKDF2https://defuse.ca/php-pbkdf2.htm进入一个小的PHP图像库,我正在建设教自己一些PHP。 我知道您将salt和hash存储在数据库中,然后在用户输入密码时重新构建它们以匹配。我不明白的是,当上面网站上的validate_password函数为同一个密码生成不同的、唯一的salt时,它是如何工作的。 例如,我创