當前位置:
首頁 >
MD5和SHA加密实现
發布時間:2025/3/20
42
豆豆
生活随笔
收集整理的這篇文章主要介紹了
MD5和SHA加密实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@Testpublic void TestMD5AndSHA() throws NoSuchAlgorithmException {String MD5=Md5("123456");//MD5加密算法
System.out.println(MD5);String SHA=SHA256("123456");//SHA256加密算法
System.out.println(SHA);//先經過MD5加密在經過SHA加密String Md5AndSha256=SHA256(Md5("123456"));System.out.println(Md5AndSha256);}public static String Md5(String str) throws NoSuchAlgorithmException {String MD5 ="";MessageDigest md5 = MessageDigest.getInstance("MD5");byte[] bytes = str.getBytes();byte[] digest = md5.digest(bytes);for (int i = 0; i < digest.length; i++) {//摘要字節數組中各個字節的"十六進制"形式.int j = digest[i];j = j & 0x000000ff;String s1 = Integer.toHexString(j);if (s1.length() == 1) {s1 = "0" + s1;}MD5 += s1;}return MD5;}public static String SHA256(String str){MessageDigest messageDigest;String encodeStr = "";try {messageDigest = MessageDigest.getInstance("SHA-256");messageDigest.update(str.getBytes("UTF-8"));encodeStr = byte2Hex(messageDigest.digest());} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}return encodeStr;}private static String byte2Hex(byte[] bytes){StringBuffer stringBuffer = new StringBuffer();String temp = null;for (int i=0;i<bytes.length;i++){temp = Integer.toHexString(bytes[i] & 0xFF);if (temp.length()==1){stringBuffer.append("0");}stringBuffer.append(temp);}return stringBuffer.toString();}
總結MD5算法和SHA都是不可逆的算法,網上的破解方法都是窮舉出來的,只要密碼長度長一點,是不可能解出來的
MD5算法破解比較容易,加密速度比較快
SHA算法破解比較難,加密速度比較慢
一起使用雖然很保密解碼幾乎不可能,但是會浪費很多開銷。
轉載于:https://www.cnblogs.com/CY-947205926/p/8898138.html
總結
以上是生活随笔為你收集整理的MD5和SHA加密实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: x和伪全面屏(18:9)关于图片切片有白
- 下一篇: 软件工程(2018)第1次团队作业