Chào m.n, mình có dùng Java để hash 1 string sang MD5. Nhưng tham khảo code trên mạng mình thấy k hiểu lắm. Code here:
import java.security.NoSuchAlgorithmException;
public class JavaMD5 {
public static void main(String[] args) {
String passwordToHash = "MyPassword123";
String generatedPassword = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(passwordToHash.getBytes());
byte[] bytes = md.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
generatedPassword = sb.toString();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(generatedPassword);
}
}
Tại chỗ (bytes[i] & 0xff) mình thấy họ nói dùng để “ensure byte[i] is possitive”,. mình k hiểu tạo sao phải lm vậy @@. Ai giải thích giúp mình dòng đó đc k ạ?