ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MD5的实现

2022-05-02 11:34:34  阅读:116  来源: 互联网

标签:MessageDigest java String 实现 static str import MD5


scala 版本

1   def getSigned(createTime:String): String ={
2     val secrectStr = appId+createTime+appKey
3     val digest: MessageDigest = MessageDigest.getInstance("MD5")
4     val encoded: Array[Byte] = digest.digest(secrectStr.getBytes())
5     val str = encoded.map("%02x".format(_)).mkString
6     str
7   }

Java版本

 1 import cn.hutool.http.HttpUtil;
 2 
 3 import java.nio.charset.StandardCharsets;
 4 import java.security.MessageDigest;
 5 import java.security.NoSuchAlgorithmException;
 6 import java.util.Calendar;
 7 import java.util.Locale;
 8 
 9 /**
10  * @author lipenghuai
11  * @version 1.0
12  * @description desc
13  * @date 2022-04-29 11:33
14  */
15 public class MD5Test {
16     private static String MD5 = "MD5";
17     private static char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
18 
19     public static String sign(String str) throws NoSuchAlgorithmException {
20         byte[] btInput = str.getBytes(StandardCharsets.UTF_8);
21         MessageDigest messageDigest = MessageDigest.getInstance(MD5);
22         messageDigest.update(btInput);
23 
24         byte[] encryptData = messageDigest.digest();
25         String encryptDataStr = bytesToHex(encryptData);
26         return encryptDataStr;
27 
28     }
29 
30     public static String bytesToHex(byte[] bytes){
31         int k = 0;
32         char[] hexChars = new char[bytes.length * 2];
33         for (int i = 0; i < bytes.length; i++) {
34             byte byte0 = bytes[i];
35             hexChars[k++] = hexDigits[byte0 >>> 4 & 0xf];
36             hexChars[k++] = hexDigits[byte0 & 0xf];
37         }
38         return new String(hexChars);
39     }
40 
41     public static void main(String[] args) throws NoSuchAlgorithmException {
42         System.out.println(MD5Test.sign("0142ce45b6d84a2f85eafe6992ddb16e1651210819sn6852163Y8Z").toLowerCase(Locale.ROOT));
43         System.out.println(System.currentTimeMillis() / 1000);
44         System.out.println(Calendar.getInstance().getTimeInMillis());
45 
46     }
47 }

python版本

1     def get_sign(self):
2         str = self.__app_id+self.__create_time+self.__app_key
3         md5 = hashlib.md5()
4         md5.update(str.encode("utf-8"))
5         return md5.hexdigest()

 

标签:MessageDigest,java,String,实现,static,str,import,MD5
来源: https://www.cnblogs.com/wind-man/p/16215366.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有