Przenoszę mój kod PHP do Google App Engine - Java.
Potrzebuję więc odpowiednika funkcji krypt PHP w Javie,
, ponieważ przechowuję wszystkie hasła zarejestrowanych użytkowników
przy użyciu krypty w moim DB.Odpowiednik funkcji krypt PHP w Javie
Edycja 1: Oto mój kod php do szyfrowania haseł:
$ password = "test123";
$ pwd = crypt (hasło, hasło);
echo $ pwd;
Wyjście jest (Na systemu Windows oraz jako serwer oparty na Linuksie na HostMonser):
temjCCsjBECmU
Czy ktoś może mi dać equivalted kodu Java?
próbowałem różnych permutacji & połączona z
MessageDigest klasy, ale nie może zrobić to dobrze ..
Edycja 2:
Oto przykładowy kod, który myślałem, że działa, ale nie:
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();
}
Proszę mi powiedzieć, że nie korzystasz z domyślnego algorytmu szyfrowania DES. Jest powód, dla którego współczesny unixen nie jest wyposażony w narzędzie do szyfrowania - zostało wcześniej uszkodzone. –
@Billy ONeal: domyślna wartość PHP zależy od systemu operacyjnego. W systemie Linux/BSD domyślnie jest to zasolony MD5 (z wyjątkiem naprawdę starych wersji). Nowsze wersje mogą nawet używać nowszego schematu, np. Solonego SHA512. – Powerlord
@Billy ONeal: Jednak kod, który dta * właśnie * opublikował, rzeczywiście jest DES ... musi być na maszynie z Windows z PHP 5.2 lub niższym. – Powerlord