Da esadecimale a String in Java
Dopo un week-end di pausa riprendiamo con un argomento molto in voga: la conversione da valori esadecimali a String.
Nel mio caso mi è servito per il login in una wb application in JSP e Servlet.
Nel db sia utente e password sono cripati in SHA1.
Partiamo da questo metodo:
public User login(String name, String pwd) throws ClassNotFoundException, SQLException, NoSuchAlgorithmException, UnsupportedEncodingException {
User user = new User();
conn = DBManager.getInstance().takeConnection();
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] encodeName = md.digest(name.getBytes("UTF-8"));
byte[] encodePwd = md.digest(pwd.getBytes("UTF-8"));
String convName = ConvertHexToString.convert(encodeName);
String convPwd = ConvertHexToString.convert(encodePwd);
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE user_name = ? AND user_pass = ?");
pstmt.setString(1, convName);
pstmt.setString(2, convPwd);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
user.setId(rs.getInt("user_id"));
user.setName(name);
user.setPwd(pwd);
rs.close();
pstmt.close();
} else {
user.setId(0);
user.setName("");
user.setPwd("");
rs.close();
pstmt.close();
}
return user;
}
Al metodo passo due String.