MD5 — один из серии алгоритмов, разработанных профессором Роналедом Ривестом в Массачусетском технологическом институте (Rivest, 1994). Когда работа показала, что MD4, вероятно, небезопасен, MD5 был разработан для замены MD4. Слабые места MD4 позже были обнаружены Хансом Доббертином.В этом руководстве объясняется, как хэшировать строку, часто пароли из соображений безопасности, используя два метода хеширования MD5 и SHA-256. Хеширование позволяет кодировать только в одном направлении, и в этом его самое большое преимущество, поэтому хеш необратим, в отличие от шифрования, которое использует ключ для шифрования и расшифровки.
Хеш-функции SHA были разработаны Агентством национальной безопасности США (АНБ). Аббревиатура SHA расшифровывается как Secure Hash Algorithm (алгоритм безопасного хеширования). Три алгоритма SHA структурированы по-разному и различаются SHA-0, SHA-1 и SHA-2. Семейство SHA-2 использует идентичный алгоритм с переменным размером дайджеста, который отличается SHA-224, SHA-256, SHA-384 и SHA-512.
import java.security.MessageDigest;Output:
public class md5_java
{
public static void main(String[] args)throws Exception
{
String password = "123456789";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes());
byte byteData[] = md.digest();
//преобразуем битовый массив в шестнадцатеричный формат - метод 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("В шестнадцатеричном формате: " + sb.toString());
//преобразуем битовый массив в шестнадцатеричный формат - метод 2
StringBuffer hexString = new StringBuffer();
для (int i=0; Я< byteData.length; i++) {
String hex=Integer.toHexString(0xff & byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
System.out.println("В шестнадцатеричном формате: " + hexString.toString());
}
}
В шестнадцатеричном формате: 25f9e794323b453885f5181f1b624d0b
В шестнадцатеричном формате: 25f9e794323b453885f5181f1b624d0b
import java.security.MessageDigest;Output:
public class sha_java
{
public static void main(String[] args)throws Exception
{
String password = "123456789";
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(password.getBytes());
byte byteData[] = md.digest();
//преобразуем битовый массив в шестнадцатеричный формат - метод 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("В шестнадцатеричном формате: " + sb.toString());
//преобразуем битовый массив в шестнадцатеричный формат - метод 2
StringBuffer hexString = new StringBuffer();
для (int i=0; Я< byteData.length; i++) {
String hex=Integer.toHexString(0xff & byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
System.out.println("В шестнадцатеричном формате: " + hexString.toString());
}
}
В шестнадцатеричном формате: 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
В шестнадцатеричном формате: 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
Please disable your ad blocker and refresh the window to use this website.