Sto migrando il mio codice PHP a Google App Engine - Java.
Quindi ho bisogno di un equivalente della funzione crypt di PHP in Java,
poiché ho memorizzato tutte le password degli utenti registrati
utilizzando la cripta nel mio DB.Equivalente della funzione crypt di PHP in Java
Edit 1: Ecco il mio codice php per le password crittografia:
$ password = "test123";
$ pwd = crypt ($ password, $ password);
echo $ pwd;
uscita è (On di Windows così come un server basato su Linux su HostMonser):
temjCCsjBECmU
qualcuno può darmi il codice Java equivalted?
ho provato varie permutazioni & combinazioni con
classe MessageDigest, ma non può farlo bene ..
Edit 2:
Ecco il codice di esempio che ho pensato avrebbe funzionato, ma non lo feci:
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();
}
Per favore dimmi che non stai usando l'algoritmo di criptaggio predefinito (DES) .... c'è una ragione per cui unix unixen non viene fornito con l'utilità crypt - è stato rotto prima. –
@Billy ONeal: l'impostazione predefinita di PHP dipende dal sistema operativo. In Linux/BSD, per impostazione predefinita salted MD5 (tranne che per le versioni veramente vecchie). Le versioni più recenti possono anche utilizzare uno schema più recente, come lo SHA512 salato. – Powerlord
@Billy ONeal: Tuttavia, il codice che dta * just * ha postato è effettivamente DES ... deve essere su una macchina Windows con PHP 5.2 o inferiore. – Powerlord