java - 在服务器上提交表单之前对密码进行哈希处理

标签 java javascript android hash sha512

以下 JavaScript 函数(forms.js 包含)中使用的函数对密码进行哈希处理。 JAVA 中的等价物是什么,

function formhash(form, password) {
      console.log("Hashing form");
      // Create a new element input, this will be our hashed password field.
      var p = document.createElement("input");
      // Add the new element to our form.
      form.appendChild(p);
      p.name = "p";
      p.type = "hidden"
      p.value = hex_sha512(password.value);
      // Make sure the plaintext password doesn't get sent.
      password.value = "";
      // Finally submit the form.
      form.submit();
    }

最佳答案

这是执行此操作的代码。复制自http://runnable.com/U8lo-rXJWGlhL-OG/sha512-for-java

import java.security.MessageDigest;

public class SHA512 {
      public static void main(String args[]) throws Exception {
          String password = "pass@word1";

            if ((args.length == 1) && (args[0].length() > 0))
            {
                password = args[0];
            }
            System.out.println("Password: " + password + " in SHA512 is:");
            System.out.println(hashText(password));
      }

    public static String convertByteToHex(byte data[])
    {
        StringBuffer hexData = new StringBuffer();
        for (int byteIndex = 0; byteIndex < data.length; byteIndex++)
            hexData.append(Integer.toString((data[byteIndex] & 0xff) + 0x100, 16).substring(1));

        return hexData.toString();
    }

    public static String hashText(String textToHash) throws Exception
    {
        final MessageDigest sha512 = MessageDigest.getInstance("SHA-512");
        sha512.update(textToHash.getBytes());

        return convertByteToHex(sha512.digest());
    }
}

[编辑]

如果使用不同的字符集,请将其传递给getBytes。示例 textToHash.getBytes("UTF-8")

关于java - 在服务器上提交表单之前对密码进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29603629/

相关文章:

Java:如何正确下载分块内容?

javascript - 如何使用 PHP/JavaScript 从客户端停止 SQL 查询执行?

javascript - 使特色图片可点击 Wordpress

javascript - 通过 JavaScript 更改样式图像

java - 为什么我不能将 View 类型的对象转换为 KeyboardView

java - 目标 org.codehaus.mojo :rpm-maven-plugin:2. 1.5:rpm 的参数 'group' 丢失或无效

java - 使 java 代码健壮但不困惑所需的异常数量

java - 如何在 Sets.newSetFromMap(map) 上执行clone()

android - 为什么 GZip 算法的结果在 Android 和 .Net 中不一样?

android - 亚马逊应用内支付