導航:首頁 > 編程語言 > javamd5bytephp

javamd5bytephp

發布時間:2023-02-24 22:33:54

javaphp 的MD5加密為什麼不一樣

JAVA是根據unicode編碼 PHP編碼跟是跟加密編碼一樣的
JAVA字元數據在散列時的編碼和PHP編碼如果能保持一致 那麼加密方式相同!

仔細分下用代碼可以實現加密一樣

② java如何算md5碼

可以利用JDK自帶的MD5來加密。

publicclassMD5Util{
publicfinalstaticStringMD5(Strings){
charhexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
try{
byte[]btInput=s.getBytes();
//獲得MD5摘要演算法的MessageDigest對象
MessageDigestmdInst=MessageDigest.getInstance("MD5");
//使用指定的位元組更新摘要
mdInst.update(btInput);
//獲得密文
byte[]md=mdInst.digest();
//把密文轉換成十六進制的字元串形式
intj=md.length;
charstr[]=newchar[j*2];
intk=0;
for(inti=0;i<j;i++){
bytebyte0=md[i];
str[k++]=hexDigits[byte0>>>4&0xf];
str[k++]=hexDigits[byte0&0xf];
}
returnnewString(str);
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
publicstaticvoidmain(String[]args){
System.out.println(MD5Util.MD5("20121221"));
System.out.println(MD5Util.MD5("加密"));
}
}

③ 如何讓php能象java的方式md5加密

<?php//示例代碼:$str = 'hello 這里是php preg_match正則匹配演示';// UTF8編碼:正則表達式匹配中文;if(preg_match('/[\x{4e00}-\x{9fa5}]+/u',$str)){    echo '匹配成功,有中文字元串!';}else{    echo '沒有中文字元串。';}// GB2312,GBK編碼:正則表達式匹配中文;if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)){    echo '匹配成功,有中文字元串!';}else{    echo '沒有中文字元串。';} ?>你看看這樣怎麼樣,建議你去後盾人看看,那裡有教學視頻

④ 請問怎麼把這個java函數轉為php的函數

java的風格和php5非常像,如果由JAVA轉PHP,那就具有一些語法上的先天優勢。
比如吧
class a{
public static function test(){
}
}

⑤ 如何在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. }

⑥ java的32位MD5加密與php中的32位MD5加密結果不一樣。求幫助。急急急

Java的字元串是unicode編碼,不受源碼文件的編碼影響;而PHP的編碼是和源碼文件的編碼一致,受源碼編碼影響。例中java字元數據在散列時的編碼和php編碼未能保持一致,我認為這是導致輸出不同的「病理」

由於未知mad.toMd5的具體實現,問題直接成因應該在toMd5的String到byte[]轉換時的編碼上,或者未設置或者設置了錯誤的編碼
但只要java的字元串先getBytes獲得位元組串,並和php源碼編碼一致,就能獲得一致結果。

⑦ PHP md5 和 java 的md5出來的數據不一樣

publicfinalclassMD5{

/**
*獲取MD5加密後的字元串
*@paramstr明文
*@return加密後的字元串
*@throwsException
*/
publicstaticStringgetMD5(Stringstr)throwsException{
/**創建MD5加密對象*/
MessageDigestmd5=MessageDigest.getInstance("MD5");
/**進行加密*/
md5.update(str.getBytes());
/**獲取加密後的位元組數組*/
byte[]md5Bytes=md5.digest();
Stringres="";
for(inti=0;i<md5Bytes.length;i++){
inttemp=md5Bytes[i]&0xFF;
if(temp<=0XF){//轉化成十六進制不夠兩位,前面加零
res+="0";
}
res+=Integer.toHexString(temp);
}
returnres;
}
}

//這是我寫的32位MD5加密(原本是16位)

⑧ Java 與 PHP 的MD5加密為什麼不一樣

估計是你的編碼有問題,你處理一下編碼試試
把java和php要加密的內容轉成同一種編碼就可以了,一般使用byte[]這種就沒問題

⑨ 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加密後的結果

⑩ 如何使用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);
}*/
}

閱讀全文

與javamd5bytephp相關的資料

熱點內容
桌面文件全部加密 瀏覽:401
6s怎麼外接u盤需要什麼app 瀏覽:131
linux查看文件許可權命令 瀏覽:685
安卓手游存檔怎麼用 瀏覽:761
linuxyum安裝ftp 瀏覽:690
村委會主任可以推行政命令嗎 瀏覽:102
電腦文件夾封面多張圖片 瀏覽:263
網吧總伺服器叫什麼 瀏覽:922
多個演算法解決同一個問題 瀏覽:455
小車解壓後我的購車發票呢 瀏覽:977
做app開發用什麼雲伺服器 瀏覽:177
linux網卡子介面 瀏覽:985
21歲職高畢業學程序員怎麼學 瀏覽:321
vs如何對單個文件編譯 瀏覽:6
為什麼有的電腦不能安裝python 瀏覽:75
金蝶迷你版加密狗檢測到過期 瀏覽:186
硬體描述語言編譯結果 瀏覽:655
程序員逆天改命 瀏覽:19
金斗雲伺服器 瀏覽:447
港口工程pdf 瀏覽:770