本文目錄一覽:
java用md5密碼加密有必要嗎?
有必要的,md5就是為了防止人偷窺,而當密碼很短的時候,利用暴力搜索也比較容易搜索到,只有密碼強度足夠的情況下才有意義,你想轉換也就沒那麼容易了。md5類hash算法的設計初衷就是單向,即不可逆。
如何使用Java生成MD5代碼
這是我以前做的一個小項目時用到md5寫的
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//將用戶密碼進行md5加密 並返回加密後的32位十六進制密碼
public class MD5Util {
public static String md5(String password) {
try {
// 獲取md5對象
MessageDigest md = MessageDigest.getInstance(“md5”);
// 獲取加密後的密碼並返回十進制位元組數組
byte[] bytes = md.digest(password.getBytes());
// 遍曆數組得到每個十進制數並轉換成十六進制
StringBuffer sb = new StringBuffer();
for (byte b : bytes) {
// 把每個數轉成十六進制 存進字符中
sb.append(toHex(b));
}
String finish = sb.toString();
return finish;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
// 十進制轉十六進制方法
private static String toHex(byte b) {
int target = 0;
if (b 0) {
target = 255 + b;
} else {
target = b;
}
int first = target / 16;
int second = target % 16;
return Hex[first] + Hex[second];
}
static String[] Hex = { “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”,
“a”, “b”, “c”, “d”, “e”, “f” };
/*public static void main(String[] args) {
String a = MD5Util.md5(“1234”);
System.out.println(a);
}*/
}
Java MD5如何解密?
MD5是單向加密的,不管何種數據進行MD5加密都會得到固定長度的字符串,
MD5一般用戶文件完整性的校驗,也有用來做密碼加密的。
想要破解MD5,因其本身的算法不可逆,故只能使用窮舉法,也就是不斷拼字符串加密和已知的MD5字符串進行比對,這是一個相當大的工程,需要龐大的數據基礎。
java 中如何進行md5加密
JDK裏面有一個java.security.MessageDigest類,這個類就是用來加密的。
加密代碼如下:
String token = System.currentTimeMillis()+new Random().nextInt()+””;
try {
MessageDigest md = MessageDigest.getInstance(“MD5”);
byte[] md5 = md.digest(token.getBytes());
} catch (Exception e) {
throw new RuntimeException(e);
}
這個byte類型的數組就是使用MD5加密後的結果
java怎麼把數據轉換成md5
不是數據,而是字符串。
/**利用MD5進行加密
* @param str 待加密的字符串
* @return 加密後的字符串
* @throws NoSuchAlgorithmException 沒有這種產生消息摘要的算法
* @throws UnsupportedEncodingException
*/
public String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{
//確定計算方法
MessageDigest md5=MessageDigest.getInstance(“MD5”);
BASE64Encoder base64en = new BASE64Encoder();
//加密後的字符串
String newstr=base64en.encode(md5.digest(str.getBytes(“utf-8”)));
return newstr;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/256514.html