Codifica in java (da js a java)
Ho questo pezzo di codice js che ho bisogno di convertire in codice java corretto per l'utilizzo nella mia app Android:
toHex(Crypto.util.bytesToBase64(Crypto.SHA1(password, { asBytes: true })));
Ho scoperto che per il metodo Crypto.util.bytesToBase64()
, posso usare la versione java: Base64.encode()
, ma non ho idea di come chiamare i metodi js CryptoSHA1()
e toHex()
in java. Qualche idea?
1 answers
Il codice utilizza tre funzioni:
-
SHA-1 digest
MessageDigest md = MessageDigest.Scarica ora ("SHA-1"); byte [] digest = md.digest (testo.getBytes ("UTF-8"));
-
Base 64
Stringa base64 = Android.util.Base 64.Codifica (digest)
Esadecimale
Usa una funzione come questa: http://vinnysoft.blogspot.de/2010/11/code-snippet-to-convert-string-to-hex.html
In sintesi l'ultimo passaggio è totalmente inutile e fa saltare solo i dati. Il risultato di base64 è già una stringa ASCII stampabile.
Inoltre l'hashing di una password usando SHA-1 può essere insicuro a seconda di cosa si fa con il risultato. Di solito l'hashing della password dovrebbe sempre incorporare la salatura.