簡體   English   中英

如何在java中實現php的crypt_md5

[英]how to implement php's crypt_md5 in java

我在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;
?>

此代碼生成以下密碼以存儲在db中:$ 1 $ ad $ BH3wnQs1wym28vdzP8zyh1

我試圖用Java制作完全相同的代碼,但由於我是Java的新手,我遇到了很多困難。 我在這里檢查了http://www.java2s.com/Open-Source/Java-Document/Groupware/LibreSource/md5/MD5Crypt.java.htm#cryptStringString ,似乎這就是我需要的,但我沒有設法讓它發揮作用。 任何幫助,將不勝感激。 先感謝您。

如果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”,也應該可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM