有必要的,md5就是為了防止人偷窺,而當密碼很短的時候,利用暴力搜索也比較容易搜索到,只有密碼強度足夠的情況下才有意義,你想轉換也就沒那麼容易了。md5類hash演算法的設計初衷就是單向,即不可逆。
2. java中md5加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class md5 {
public String str;
public void md5s(String plainText) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
str = buf.toString();
System.out.println("result: " + buf.toString());// 32位的加密
System.out.println("result: " + buf.toString().substring(8, 24));// 16位的加密
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String agrs[]) {
md5 md51 = new md5();
md51.md5s("4");//加密4
}
}
3. java 中怎麼使用md5加密
樓主您好
JDK裡面有一個java.security.MessageDigest類,這個類就是用來加密的。
String token = System.currentTimeMillis()+new Random().nextInt()+"";<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索" class="selectsearch-hide">
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5 = md.digest(token.getBytes());
} catch (Exception e) {
throw new RuntimeException(e);
}
4. JAVA做一個簡單的MD5加密...
常用的MD5加密類
package org.tool;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5_Encoding
{
private MessageDigest md = null;
private static MD5_Encoding md5 = null;
private static final char[] hexChars = { '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
/**
* Constructor is private so you must use the getInstance method
*/
private MD5_Encoding() throws NoSuchAlgorithmException
{
md = MessageDigest.getInstance("MD5");
}
/**
* This returns the singleton instance
*/
public static MD5_Encoding getInstance() throws NoSuchAlgorithmException
{
if (md5 == null)
{
md5 = new MD5_Encoding();
}
return (md5);
}
/* 將字元串使用md5加密的方法*/
public static String hashCode(String dataToHash)
throws NoSuchAlgorithmException
{
return getInstance().hashData(dataToHash.getBytes());
}
public static String hashCode(byte[] dataToHash)
throws NoSuchAlgorithmException
{
return getInstance().hashData(dataToHash);
}
public String hashData(byte[] dataToHash)
{
return hexStringFromBytes((calculateHash(dataToHash))).toLowerCase();
}
private byte[] calculateHash(byte[] dataToHash)
{
md.update(dataToHash, 0, dataToHash.length);
return (md.digest());
}
public String hexStringFromBytes(byte[] b)
{
String hex = "";
int msb;
int lsb = 0;
int i;
// MSB maps to idx 0
for (i = 0; i < b.length; i++)
{
msb = ((int) b[i] & 0x000000FF) / 16;
lsb = ((int) b[i] & 0x000000FF) % 16;
hex = hex + hexChars[msb] + hexChars[lsb];
}
return (hex);
}
public static void main(String args[]) throws Exception{
//舉例對1進行加密
System.out.println(MD5_Encoding.hashCode("1"));
}
}
5. java md5加密怎麼實現源碼 視頻介紹下
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
private MessageDigest md;
private static MD5 md5;
private MD5()
{
try {
md=MessageDigest.getInstance("md5");
} catch (NoSuchAlgorithmException e) {
System.out.println("沒有這種演算法");
}
}
//產生一個MD5實例
public static MD5 getInstance()
{
if(null!=md5)
return md5;
else
{
makeInstance();
return md5;
}
}
//保證同一時間只有一個線程在使用MD5加密
private static synchronized void makeInstance()
{
if(null==md5)
md5=new MD5();
}
public String createMD5(String pass)
{
md.update(pass.getBytes());
byte[] b=md.digest();
return byteToHexString(b);
}
private String byteToHexString(byte[] b)
{
StringBuffer sb=new StringBuffer();
String temp="";
for(int i=0;i<b.length;i++)
{
temp=Integer.toHexString(b[i]&0Xff);
if(temp.length()==1)
temp="0"+temp;
sb.append(temp);
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(MD5.getInstance().createMD5("123")); }}
6. javaweb關於客戶端密碼md5加密後被抓包工具抓取的問題
你描述的問題有點像CSRF攻擊,而且你提出來的辦法有一定的局限性,比如說如果黑客是同一個區域網的人,這種判斷ip地址的方法可能會失效。
其實只要使用https就不存在這種問題,就算是中間被人截取了加密的密碼,然後用加密的密碼提交表單,最後與後台資料庫匹配成功也沒有用。因為匹配成功之後,服務端給黑客發送的信息也是經過加密的,但是黑客是不知道密鑰,不知道如何對這段信息進行解密,所以不會登陸成功的。這把密鑰只有客戶端和服務端知道,所有題主擔心的問題用https能夠解決,這是我的一點見解。
7. 如何在java中實現md5加密和解密
package endecrypt;
02.
03.import java.io.UnsupportedEncodingException;
04.import java.security.MessageDigest;
05.import java.security.NoSuchAlgorithmException;
06.
07./**
08. * 採用MD5加密解密
09. * @author tfq
10. * @datetime 2011-10-13
11. */
12.public class MD5Util {
13.
14. /***
15. * MD5加碼 生成32位md5碼
16. */
17. public static String string2MD5(String inStr){
18. MessageDigest md5 = null;
19. try{
20. md5 = MessageDigest.getInstance("MD5");
21. }catch (Exception e){
22. System.out.println(e.toString());
23. e.printStackTrace();
24. return "";
25. }
26. char[] charArray = inStr.toCharArray();
27. byte[] byteArray = new byte[charArray.length];
28.
29. for (int i = 0; i < charArray.length; i++)
30. byteArray[i] = (byte) charArray[i];
31. byte[] md5Bytes = md5.digest(byteArray);
32. StringBuffer hexValue = new StringBuffer();
33. for (int i = 0; i < md5Bytes.length; i++){
34. int val = ((int) md5Bytes[i]) & 0xff;
35. if (val < 16)
36. hexValue.append("0");
37. hexValue.append(Integer.toHexString(val));
38. }
39. return hexValue.toString();
40.
41. }
42.
43. /**
44. * 加密解密演算法 執行一次加密,兩次解密
45. */
46. public static String convertMD5(String inStr){
47.
48. char[] a = inStr.toCharArray();
49. for (int i = 0; i < a.length; i++){
50. a[i] = (char) (a[i] ^ 't');
51. }
52. String s = new String(a);
53. return s;
54.
55. }
8. java 有哪些jar包直接提供了獲得md5值的方法
需要導入一個jar包:commons-codec
代碼如下:
import org.apache.commons.codec.digest.DigestUtils;
public class ToMain {
public static void main(String[] args) {
System.out.println(DigestUtils.md5Hex(".com"));
}
}
9. java web md5加密的使用
1、Java中你可以用MD5 util工具類,網上有md5工具類的,你下載一個,在數據入庫時候,進行密文md5一下在存入資料庫就行
2、非重要性數據使用md5是沒有意義的
3、以上個人觀點,如果還有什麼不懂的可以在繼續追問
10. java 中如何進行md5加密
JDK裡面有一個java.security.MessageDigest類,這個類就是用來加密的。
加密代碼如下:
Stringtoken=System.currentTimeMillis()+newRandom().nextInt()+"";
try{
MessageDigestmd=MessageDigest.getInstance("MD5");
byte[]md5=md.digest(token.getBytes());
}catch(Exceptione){
thrownewRuntimeException(e);
}
這個byte類型的數組就是使用MD5加密後的結果