Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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
如何实现php';java中的s crypt_md5_Java_Php_Md5_Crypt - Fatal编程技术网

如何实现php';java中的s crypt_md5

如何实现php';java中的s crypt_md5,java,php,md5,crypt,Java,Php,Md5,Crypt,我在PHP中有一个简单的应用程序,它使用以下代码对密码进行散列并将其存储在数据库中 <?php $user_name = "admin"; $password = "1234"; $salt = substr($user_name, 0, 2); $salt = '$1$' . $salt . '$'; //$salt = $1$ad$ $crypt_password = crypt($password, $salt); echo $crypt_password; ?> 此代码

我在PHP中有一个简单的应用程序,它使用以下代码对密码进行散列并将其存储在数据库中

<?php
$user_name = "admin";
$password = "1234";
$salt = substr($user_name, 0, 2);
$salt = '$1$' . $salt . '$'; //$salt = $1$ad$
$crypt_password = crypt($password, $salt);
echo $crypt_password;
?>

此代码生成以下密码以存储在数据库中:$1$ad$BH3wnQs1wym28vdzP8zyh1


我试图用Java编写完全相同的代码,但由于我是Java新手,我遇到了很多困难。我在这里检查了一下,似乎这正是我需要的,但我没能成功。任何帮助都将不胜感激。提前感谢您。

如果md5适合您,您可以尝试以下代码:

    String pass = "1234";
    MessageDigest crypt = null;

    try {
        crypt = java.security.MessageDigest.getInstance("MD5");
    } catch (NoSuchAlgorithmException e) {
        System.out.println("MD5 not supported");
        return; // depends on your method
    }

    byte[] digested = crypt.digest(pass.getBytes());
    String crypt_password = new String();

    // Converts bytes to string
    for (byte b : digested) 
        crypt_password += Integer.toHexString(0xFF & b);

    System.out.println(crypt_password);

此外,您可以将“MD5”更改为“SHA1”,也应该可以使用。

如果您不需要将MD5用于您的建筑中的任何应用程序,请尝试SHA1,因为它比MD5安全得多,我相信java会支持它。这有帮助吗?我认为通过使用以下代码字符串password=MD5Crypt.crypt(“1234”,“a”);System.out.println(密码);我会得到我所需要的,但它不起作用,我猜是因为我没有导入正确的包?最后,我使用以下代码得到了它:String password=MD5Crypt.crypt(“1234”,“a”);System.out.println(密码);我还需要创建MD5Crypt.class。答案是Thanx所有这些看起来都很有效,但实际上md5(“1234”)在PHP中就是这么做的。我正在寻找一种方法来“表示”crypt($password,$salt)在PHP中的功能,尽管我可以使用这段代码并更改在db中存储密码的方式。