基于Java语言MD5加密Base64转换方法

网友投稿 299 2023-04-05


基于Java语言MD5加密Base64转换方法

本文提供了基于MD5加密16位和32位的方法,具体内容如下

import java.io.IOException;

import java.math.BigInteger;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

/**

*

标题:编码工具类

*

功能:对数据进行编码转换

*/

public class EncodeUtil

{

public static void main(String[] args) throws Exception

{

System.out.println(md5Encrypt16("需要进行MD5加密的字符串"));

}

/**

* MD5加密16位

* @param encryptStr 要加密数据

* @return 返回16位加密结果

* ZhaoLi

*/

public static String md5Encrypt16(String encryptStr)

{

return md5Encrypt32(encryptStr).substring(8, 24);

}

/**

* MD5加密32位

* @param encryptStr 要加密数据

* @return 32位加密结果

* ZhaoLi

*/

public static String md5Encrypt32(String encryptStr)

{

MessageDigest md5;

try

{

md5 = MessageDigest.getInstance("MD5");

byte[] md5Bytes = md5.digest(encryptStr.getBytes());

StringBuffer hexValue = new StringBuffer();

for (int i = 0; i < mdhttp://5Bytes.length; i++)

{

int val = (md5Bytes[i]) & 0xff;

if (val < 16)

{

hexValue.append("0");

}

hexValuehttp://.append(Integer.toHexString(val));

}

return hexValue.toString().toLowerCase();

} catch (Exception e)

{

throw new RuntimeException(e);

}

}

/**

* 结合base64实现md5加密

* @param msg 待加密字符串

* @return 获取md5后转为base64

* @throws Exception

*/

public static String md5EncryptBase64(String msg) throws Exception

{

return msg == null ? null : base64Encode(md5(msg));

}

/**

* 将byte[]转为各种进制的字符串

* @param bytes byte[]

* @param radix 可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制

* @return 转换后的字符串

*/

public static String binary(byte[] bytes, int radix)

{

return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数

}

/**

* base 64 encode

* @param bytes 待编码的byte[]

* @return 编码后的base 64 code

*/

public static String base64Encode(byte[] bytes)

{

return new BASE64Encoder().encode(bytes);

}

/**

* base 64 decode

* @param base64Code 待解码的base 64 code

* @return 解码后的byte[]

* @throws Exception

*/

public static byte[] base64Decode(String base64Code)

{

try

{

return base64ihQfMJUCode == null ? null : new BASE64Decoder().decodeBuffer(base64Code);

} catch (IOException e)

{

throw new RuntimeException("报错内容", e);

}

}

/**

* 获取byte[]的md5值

* @param bytes byte[]

* @return md5

* @throws Exception

*/

public static byte[] md5(byte[] bytes)

{

MessageDigest md;

try

{

md = MessageDigest.getInstance("MD5");

} catch (NoSuchAlgorithmException e)

{

throw new RuntimeException("报错内容", e);

}

md.update(bytes);

return md.digest();

}

/**

* 获取字符串md5值

* @param msg

* @return md5

* @throws Exception

*/

public static byte[] md5(String msg)

{

return msg == null ? null : md5(msg.getBytes());

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Javabean和map相互转化方法代码示例
下一篇:Java数据结构与算法之栈(Stack)实现详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~