日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java的MD5加密和解密

發(fā)布時(shí)間:2024/1/17 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的MD5加密和解密 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)單demo:

Java代碼 ?
  • import??java.security.*;??
  • import??java.security.spec.*;??
  • ??
  • class??MD5_test?{??
  • ?public???final???static??String?MD5(String?s)?{??
  • ??char??hexDigits[]?=?{??'0'?,??'1'?,??'2'?,??'3'?,??'4'?,??'5'?,??'6'?,??'7'?,??'8'?,??'9'?,??
  • ????'a'?,??'b'?,??'c'?,??'d'?,??'e'?,??'f'??};??
  • ??try??{??
  • ???byte?[]?strTemp?=?s.getBytes();??
  • ???MessageDigest?mdTemp?=?MessageDigest.getInstance("MD5"?);??
  • ???mdTemp.update(strTemp);??
  • ???byte?[]?md?=?mdTemp.digest();??
  • ???int??j?=?md.length;??
  • ???char??str[]?=??new???char?[j?*??2?];??
  • ???int??k?=??0?;??
  • ???for??(?int??i?=??0?;?i?<?j;?i++)?{??
  • ????byte??byte0?=?md[i];??
  • ????str[k++]?=?hexDigits[byte0?>>>?4??&??0xf?];??
  • ????str[k++]?=?hexDigits[byte0?&?0xf?];??
  • ???}??
  • ???return???new??String(str);??
  • ??}?catch??(Exception?e)?{??
  • ???return???null?;??
  • ??}??
  • ?}??
  • ??
  • ?public???static???void??main(String[]?args)?{??
  • ??//?MD5_Test?aa?=?new?MD5_Test();???
  • ??System.out.print(MD5_test.MD5("b"?));??
  • ?}??
  • }??
  • [java]?view plain?copy?print?
  • import?java.security.*;??
  • import?java.security.spec.*;??
  • ??
  • class?MD5_test?{??
  • ?public?final?static?String?MD5(String?s)?{??
  • ??char?hexDigits[]?=?{?'0',?'1',?'2',?'3',?'4',?'5',?'6',?'7',?'8',?'9',??
  • ????'a',?'b',?'c',?'d',?'e',?'f'?};??
  • ??try?{??
  • ???byte[]?strTemp?=?s.getBytes();??
  • ???MessageDigest?mdTemp?=?MessageDigest.getInstance("MD5");??
  • ???mdTemp.update(strTemp);??
  • ???byte[]?md?=?mdTemp.digest();??
  • ???int?j?=?md.length;??
  • ???char?str[]?=?new?char[j?*?2];??
  • ???int?k?=?0;??
  • ???for?(int?i?=?0;?i?<?j;?i++)?{??
  • ????byte?byte0?=?md[i];??
  • ????str[k++]?=?hexDigits[byte0?>>>?4?&?0xf];??
  • ????str[k++]?=?hexDigits[byte0?&?0xf];??
  • ???}??
  • ???return?new?String(str);??
  • ??}?catch?(Exception?e)?{??
  • ???return?null;??
  • ??}??
  • ?}??
  • ??
  • ?public?static?void?main(String[]?args)?{??
  • ??//?MD5_Test?aa?=?new?MD5_Test();??
  • ??System.out.print(MD5_test.MD5("b"));??
  • ?}??
  • }??
  • ?

    Java代碼 ?
  • import??java.security.MessageDigest;??
  • ??
  • ??
  • public???class??MD5andKL?{??
  • ?//?MD5加碼。32位???
  • ?public???static??String?MD5(String?inStr)?{??
  • ??MessageDigest?md5?=?null?;??
  • ??try??{??
  • ???md5?=?MessageDigest.getInstance("MD5"?);??
  • ??}?catch??(Exception?e)?{??
  • ???System.out.println(e.toString());??
  • ???e.printStackTrace();??
  • ???return???""?;??
  • ??}??
  • ??char?[]?charArray?=?inStr.toCharArray();??
  • ??byte?[]?byteArray?=??new???byte?[charArray.length];??
  • ??
  • ??for??(?int??i?=??0?;?i?<?charArray.length;?i++)??
  • ???byteArray[i]?=?(byte?)?charArray[i];??
  • ??
  • ??byte?[]?md5Bytes?=?md5.digest(byteArray);??
  • ??
  • ??StringBuffer?hexValue?=?new??StringBuffer();??
  • ??
  • ??for??(?int??i?=??0?;?i?<?md5Bytes.length;?i++)?{??
  • ???int??val?=?((?int?)?md5Bytes[i])?&??0xff?;??
  • ???if??(val?<??16?)??
  • ????hexValue.append("0"?);??
  • ???hexValue.append(Integer.toHexString(val));??
  • ??}??
  • ??
  • ??return??hexValue.toString();??
  • ?}??
  • ??
  • ?//?可逆的加密算法???
  • ?public???static??String?KL(String?inStr)?{??
  • ??//?String?s?=?new?String(inStr);???
  • ??char?[]?a?=?inStr.toCharArray();??
  • ??for??(?int??i?=??0?;?i?<?a.length;?i++)?{??
  • ???a[i]?=?(char?)?(a[i]?^??'t'?);??
  • ??}??
  • ??String?s?=?new??String(a);??
  • ??return??s;??
  • ?}??
  • ??
  • ?//?加密后解密???
  • ?public???static??String?JM(String?inStr)?{??
  • ??char?[]?a?=?inStr.toCharArray();??
  • ??for??(?int??i?=??0?;?i?<?a.length;?i++)?{??
  • ???a[i]?=?(char?)?(a[i]?^??'t'?);??
  • ??}??
  • ??String?k?=?new??String(a);??
  • ??return??k;??
  • ?}??
  • ???
  • ?//?測(cè)試主函數(shù)???
  • ?public???static???void??main(String?args[])?{??
  • ??String?s?=?new??String(?"a"?);??
  • ??System.out.println("原始:"??+?s);??
  • ??System.out.println("MD5后:"??+?MD5(s));??
  • ??System.out.println("MD5后再加密:"??+?KL(MD5(s)));??
  • ??System.out.println("解密為MD5后的:"??+?JM(KL(MD5(s))));??
  • ?}??
  • }??
  • [java]?view plain?copy?print?
  • import?java.security.MessageDigest;??
  • ??
  • ??
  • public?class?MD5andKL?{??
  • ?//?MD5加碼。32位??
  • ?public?static?String?MD5(String?inStr)?{??
  • ??MessageDigest?md5?=?null;??
  • ??try?{??
  • ???md5?=?MessageDigest.getInstance("MD5");??
  • ??}?catch?(Exception?e)?{??
  • ???System.out.println(e.toString());??
  • ???e.printStackTrace();??
  • ???return?"";??
  • ??}??
  • ??char[]?charArray?=?inStr.toCharArray();??
  • ??byte[]?byteArray?=?new?byte[charArray.length];??
  • ??
  • ??for?(int?i?=?0;?i?<?charArray.length;?i++)??
  • ???byteArray[i]?=?(byte)?charArray[i];??
  • ??
  • ??byte[]?md5Bytes?=?md5.digest(byteArray);??
  • ??
  • ??StringBuffer?hexValue?=?new?StringBuffer();??
  • ??
  • ??for?(int?i?=?0;?i?<?md5Bytes.length;?i++)?{??
  • ???int?val?=?((int)?md5Bytes[i])?&?0xff;??
  • ???if?(val?<?16)??
  • ????hexValue.append("0");??
  • ???hexValue.append(Integer.toHexString(val));??
  • ??}??
  • ??
  • ??return?hexValue.toString();??
  • ?}??
  • ??
  • ?//?可逆的加密算法??
  • ?public?static?String?KL(String?inStr)?{??
  • ??//?String?s?=?new?String(inStr);??
  • ??char[]?a?=?inStr.toCharArray();??
  • ??for?(int?i?=?0;?i?<?a.length;?i++)?{??
  • ???a[i]?=?(char)?(a[i]?^?'t');??
  • ??}??
  • ??String?s?=?new?String(a);??
  • ??return?s;??
  • ?}??
  • ??
  • ?//?加密后解密??
  • ?public?static?String?JM(String?inStr)?{??
  • ??char[]?a?=?inStr.toCharArray();??
  • ??for?(int?i?=?0;?i?<?a.length;?i++)?{??
  • ???a[i]?=?(char)?(a[i]?^?'t');??
  • ??}??
  • ??String?k?=?new?String(a);??
  • ??return?k;??
  • ?}??
  • ???
  • ?//?測(cè)試主函數(shù)??
  • ?public?static?void?main(String?args[])?{??
  • ??String?s?=?new?String("a");??
  • ??System.out.println("原始:"?+?s);??
  • ??System.out.println("MD5后:"?+?MD5(s));??
  • ??System.out.println("MD5后再加密:"?+?KL(MD5(s)));??
  • ??System.out.println("解密為MD5后的:"?+?JM(KL(MD5(s))));??
  • ?}??
  • }??
  • ?

    總結(jié)

    以上是生活随笔為你收集整理的Java的MD5加密和解密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。