python hashlib md5 digest方法的java实现

feng1990liu 2017-11-15 02:38:06
python
def body_md5(body_str):
return base64.b64encode(md5(body_str).digest())
java
public static String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
//确定计算方法
MessageDigest md5= MessageDigest.getInstance("MD5");
JSONObject jsonObject = JSON.parseObject(str);
BASE64Encoder base64en = new BASE64Encoder();
//加密后的字符串
String newstr=base64en.encode(md5.digest(str.getBytes()));

return newstr;
}
这两种加密String number= "{\"numbers\":[\"18500456920\"]}";为什么结果不一样,java怎么实现python的方法?
...全文
1169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2017-11-16
  • 打赏
  • 举报
回复
pyhton结果

>>> number= '{\"numbers\":[\"18500456920\"]}'
>>> print binascii.b2a_hex( (md5(number).digest()))
436172da715f09958c1559df015c26c6
>>> print base64.b64encode(md5(number).digest())
Q2Fy2nFfCZWMFVnfAVwmxg==
>>> 
java结果是一样的 我用了jdk8中的Base64

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class MD5Test {

	public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
		String number= "{\"numbers\":[\"18500456920\"]}";
		System.out.println(EncoderByMd5(number));
	}
	
	 public static String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
	        //确定计算方法
	        MessageDigest md5= MessageDigest.getInstance("MD5");
//	        Encoder base64en = new Encoder();
	        //加密后的字符串
	        String newstr=Base64.getEncoder().encodeToString(md5.digest(str.getBytes()));
	        return newstr;
	    }
}

幽饮烛 2017-11-16
  • 打赏
  • 举报
回复
看两种的语言把字符串转成字节后的内容是否一样。可能是编码问题。
feng1990liu 2017-11-15
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
把python的improt列出来 python 版本,base64,md5,digest的引用哪个包的?
python 版本2.7
feng1990liu 2017-11-15
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
把python的improt列出来 python 版本,base64,md5,digest的引用哪个包的?
import requests import time from hashlib import sha1, md5 import hmac import json import base64
tianfang 2017-11-15
  • 打赏
  • 举报
回复
把python的improt列出来 python 版本,base64,md5,digest的引用哪个包的?

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧