com.anlavn.hash.MD5 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of AL-Library_VN Show documentation
Show all versions of AL-Library_VN Show documentation
Java library for many thing wonderful
package com.anlavn.hash;
// Make By Bình An || AnLaVN || KatoVN
import com.anlavn.file.Log;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**Lớp MD5 hỗ trợ mã hóa đối tượng và chuỗi, giải mã nó là bất khả thi.
* MD5 sử dụng hàm băm mật mã học Message-Digest algorithm 5 với giá trị băm dài 128-bit.
*
Đảm bảo rằng lớp đối tượng của bạn đã "implements Serializable".
* @author AnLaVN
* @deprecated Tính bảo mật của hàm băm MD5 bị xâm phạm nghiêm trọng.
* Một cuộc tấn công xung đột tồn tại có thể tìm thấy xung đột trong vòng vài giây trên máy tính có bộ xử lý Pentium 4 2,6 GHz
* (độ phức tạp 224.1). Hơn nữa, cũng có một cuộc tấn công va chạm tiền tố được chọn có thể tạo ra xung đột cho hai
* đầu vào với các tiền tố được chỉ định trong vòng vài giây, sử dụng phần cứng máy tính có sẵn (độ phức tạp 239).
*/
@Deprecated
public class MD5 {
private static String Encrypt(final byte[] bytes){
try {
final MessageDigest md = MessageDigest.getInstance("MD5");
final byte[] hash = md.digest(bytes);
final BigInteger no = new BigInteger(1, hash);
String hashtext = no.toString(16);
while (hashtext.length() < 32) {
hashtext = "0" + hashtext;
}
return hashtext;
}catch (NoSuchAlgorithmException e) {
Log.add("!!! Error try to Encrypt MD5. !!!\n\tError code: " + e.toString());
return null;
}
}
/**Sử dụng phương thức này để mã hóa đối tượng gốc.
* @param objToEncrypt là đối tượng cần mã hóa.
* @return mã băm MD5 của đối tượng ban đầu.
*/
public static final String Encrypt(final Object objToEncrypt){
try {
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(objToEncrypt); oos.flush();
return Encrypt(bos.toByteArray());
}catch (IOException e) {
Log.add("!!! Error try to Encrypt MD5 an Object. Can not parse Object to bytes. !!!\n\tError code: " + e.toString());
return null;
}
}
/**Sử dụng phương thức này để mã hóa chuỗi gốc.
* @param strToEncrypt là chuỗi cần mã hóa.
* @return mã băm MD5 của chuỗi ban đầu.
*/
public static final String Encrypt(final String strToEncrypt){
return Encrypt(strToEncrypt.getBytes());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy