java加密MD5實現及密碼驗證代碼實例
這篇文章主要介紹了java加密MD5實現及密碼驗證代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
MD5算法具有以下特點:
1、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。
2、容易計算:從原數據計算出MD5值很容易。
3、抗修改性:對原數據進行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。
4、強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。
MD5的作用是讓大容量信息在用數字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的十六進制數字串)。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。
package test;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.junit.Test;
public class Teste {
@Test
public void testMd5() {
System.out.println(encrypt("1234567"));
}
@Test
public void testlogin() {
String password = encrypt("123456adfaf");
if(encrypt("123456adfaf").equals(password)) {
System.out.println("密碼正確");
} else {
System.out.println("密碼錯誤");
}
}
private String encrypt(String password) {
String passwordMd5 = null;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] bytes = md5.digest(password.getBytes("utf-8"));
passwordMd5 = toHex(bytes);
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
e.printStackTrace();
}
return passwordMd5;
}
private static String toHex(byte[] bytes) {
final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
StringBuilder ret = new StringBuilder(bytes.length * 2);
for (int i=0; i<bytes.length; i++) {
ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
}
return ret.toString();
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring定時任務只執(zhí)行一次的原因分析與解決方案
在使用Spring的@Scheduled定時任務時,你是否遇到過任務只執(zhí)行一次,后續(xù)不再觸發(fā)的情況?這種情況可能由多種原因導致,如未啟用調度、線程池問題、異常中斷等,本文將深入分析Spring定時任務只執(zhí)行一次的原因,并提供完整的解決方案,需要的朋友可以參考下2025-03-03
springcloud如何使用Feign后臺內部傳遞MultipartFile
這篇文章主要介紹了springcloud如何使用Feign后臺內部傳遞MultipartFile,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

