我將我的PHP代碼遷移到Google App Engine - Java。
所以我需要一個相當於Java的PHP的crypt函數,
因爲我已經在我的數據庫中存儲了使用crypt的註冊用戶的所有密碼
。Java的PHP的crypt函數的等效
編輯1: 這裏是加密的密碼我的PHP代碼:
$密碼= 「test123」;
$ pwd = crypt($ password,$ password);
echo $ pwd;
輸出是(在的Windows以及對HostMonser一個基於Linux的服務器):
temjCCsjBECmU
能有人給我equivalted Java代碼?
我已經試過各種排列組合&與
MessageDigest類,但不能得到它的權利..
編輯2:
這是我本以爲這工作,但沒有示例代碼:
try {
{
String password = "test123";
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] passwordBytes = password.getBytes();
digest.reset();
digest.update(passwordBytes);
digest.update(passwordBytes);
byte[] message = digest.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0; i < message.length; i++)
{
hexString.append(Integer.toHexString(
0xFF & message[ i ]));
}
String encrypted = hexString.toString();
System.out.println(encrypted);
} } catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
請告訴我你沒有使用默認的(DES)crypt算法.... theres現代unixen不帶有crypt實用程序的原因 - 它之前已被破解。 – 2010-07-20 16:36:29
@Billy ONeal:PHP的默認值取決於操作系統。在Linux/BSD上,它默認使用鹽醃的MD5(除了真正的舊版本)。新版本甚至可能會使用更新的方案,如鹽醃SHA512。 – Powerlord 2010-07-20 17:29:46
@Billy ONeal:然而,dta * just *發佈的代碼確實是DES ...必須位於PHP 5.2或更低版本的Windows機器上。 – Powerlord 2010-07-20 17:43:30