通用32位MD5算法总结:MD5Util

1.小写:

比如

abcdef

e80b5017098950fc58aad83c8c14978e

 public static String HEXAndMd5(String plainText) {
    try {
      MessageDigest md = MessageDigest.getInstance("MD5");
      try {
        md.update(plainText.getBytes("UTF8"));
      } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
      }
      byte b[] = md.digest();
      int i;
      StringBuffer buf = new StringBuffer(200);
      for (int offset = 0; offset < b.length; offset++) {
        i = b[offset] & 0xff;
        if (i < 16) buf.append("0");
        buf.append(Integer.toHexString(i));
      }
      return buf.toString();
    } catch (NoSuchAlgorithmException e) {
      LoggerUtil.error("Md5加密异常", e);
      return null;
    }
  }

1.大写:

比如

abcdef

E80B5017098950FC58AAD83C8C14978E

   /**
     * 获得MD5加密字符串
     *
     * @param source 源字符串
     *
     * @return 加密后的字符串
     *
     */
    public static String getMD5(String source) {
        String mdString = null;
        if (source != null) {
            try {
//关键是这句
                mdString = getMD5(source.getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return mdString;
    }

    /**
     * 获得MD5加密字符串
     *
     * @param source 源字节数组
     *
     * @return 加密后的字符串
     */
    public static String getMD5(byte[] source) {
        String s = null;
        char [] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
                '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        final int temp = 0xf;
        final int arraySize = 32;
        final int strLen = 16;
        final int offset = 4;
        try {
            java.security.MessageDigest md = java.security.MessageDigest
                    .getInstance("MD5");
            md.update(source);
            byte [] tmp = md.digest();
            char [] str = new char[arraySize];
            int k = 0;
            for (int i = 0; i < strLen; i++) {
                byte byte0 = tmp[i];
                str[k++] = hexDigits[byte0 >>> offset & temp];
                str[k++] = hexDigits[byte0 & temp];
            }
            s = new String(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return s;
    }

通用32位MD5算法总结:MD5Util,布布扣,bubuko.com

时间: 2025-01-04 14:56:13

通用32位MD5算法总结:MD5Util的相关文章

MD5加密 生成32位md5码

package net.joystart.common.util.security; import java.security.MessageDigest; /** * 加密算法工具类 * @author LDY20151214 * */ public class EncryptionUtil { /*** * MD5加密 生成32位md5码 * @param 待加密字符串 * @return 返回32位md5码 */ public static String md5(String inStr)

16位的MD5加密和32位MD5加密的区别

16位的MD5加密和32位MD5加密的区别 MD5加密后所得到的通常是32位的编码,而在不少地方会用到16位的编码它们有什么区别呢?16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16位MD5散列要比破解32位MD5散列还慢因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来, 然后再进行对比而破解32位的则不需要,加密后直接对比就可以了 admin 的加密代码:16位加密:7a57a5a743894a0e32位加密:21232f297a57a5a743894a0e4a

32位MD5加密补齐丢失的0

/// <summary> /// 获取32位MD5加密字符串(已补完0) /// </summary> /// <param name="strWord"></param> /// <returns></returns> public static string GetMD5String(string strWord) { string strRes = string.Empty; MD5 md5 = MD5.C

随机生成32位字符串算法

随机生成32位字符串算法: function getRandom() { var arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D"

C# 常用方法—— 32位MD5加密

其他常用方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html /// <summary> /// 32位MD5加密(小写) /// </summary> /// <param name="input">输入字段</param> /// <returns></returns> public string Encrypt(string str) { MD5Cryp

将32位MD5摘要串转换为128位二进制字符串

将32为MD5摘要串转换为128位二进制字符串: 1 /// <summary> 2 /// 将字符串转成二进制 3 /// </summary> 4 /// <param name="s">源字符串</param> 5 /// <returns>二进制串</returns> 6 internal static string ConvertStringToBinary(string s) 7 { 8 if (s.I

java计算文件32位md5值

1 protected static String getFileMD5(String fileName) 2 { 3 File file = new File(fileName); 4 if(!file.exists() || !file.isFile()){ 5 return ""; 6 } 7 8 byte[] buffer = new byte[2048]; 9 try { 10 MessageDigest digest = MessageDigest.getInstance(

Java 实现32位MD5加密

MD5介绍[链接] Java代码实现 1 public class Md5Util { 2 private String Md5Util(String s) { 3 try { 4 MessageDigest md = MessageDigest.getInstance("MD5"); 5 byte[] bytes = md.digest(s.getBytes("utf-8")); 6 return toHex(bytes); 7 } catch (Exceptio

通用32位apihook函数(hook socket)

C++代码部分 typedef int(__stdcall *send_)(SOCKET , const char* , int , int ); typedef int(__stdcall *recv_)(SOCKET, const char*, int, int); int __stdcall fake_send(SOCKET s, const char* buf, int len, int flags) { return old_send(s, buf, len, flags); } in