V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lestat
V2EX  ›  问与答

求助,如何把以下 Java 代码用 PHP 重写

  •  
  •   lestat · 2017-12-07 09:32:22 +08:00 · 1475 次点击
    这是一个创建于 2329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT,最近一个客户购买了移动的短信发送接口,本人负责对接,接口的请求大概是这样的,首先通过一个地址请求得到类似微信授权的 expire=7200s 的 access_token,然后使用这个 token 经过跟其他参数按照一定顺序拼接后得到的字符串进行 md5+hex 加密,短信发送请求需要用到加密之后得到的 mac,但是不知道如何用 php 写这个 mac 的算法


    DEMO 中 JAVA 代码的 mac 算法部分:

    	// MD5 转换
    	public static String encryptToMD5(String password) {
    		byte[] digesta = null;
    		String result = null;
    		try {
    
    			// 得到一个 MD5 的消息摘要
    			MessageDigest mdi = MessageDigest.getInstance("MD5");
    			// 添加要进行计算摘要的信息
    			mdi.update(password.getBytes("utf-8"));
    			// 得到该摘要
    			digesta = mdi.digest();
    			result = byteToHex(digesta);
    		} catch (NoSuchAlgorithmException e) {
    
    		} catch (UnsupportedEncodingException e) {
    			// TODO 自动生成??catch ??
    			e.printStackTrace();
    		}
    		return result;
    	}
    
    	/**
    	 * 将二进制转化为 16 进制字符串
    	 */
    	public static String byteToHex(byte[] pwd) {
    		StringBuilder hs = new StringBuilder("");
    		String temp = "";
    		for (int i = 0; i < pwd.length; i++) {
    			temp = Integer.toHexString(pwd[i] & 0XFF);
    			if (temp.length() == 1) {
    				hs.append("0").append(temp);
    			} else {
    				hs.append(temp);
    			}
    		}
    		return hs.toString().toUpperCase();
    	}
    

    其他:java 的 demo 中获取 mac 的值就是通过String selfMac = encryptToMD5(mac);,我这边就是需要重写以上两个函数

    大家有没有什么建议?比如去看 JAVA 语法,或者以上函数可以比较简单的通过 php 重写?主要是看不懂一个字符串传入 encryptToMD5 这个函数之后经过了什么处理,特别是第二个函数看不明白


    非常感谢!

    3 条回复    2017-12-07 09:47:38 +08:00
    alinwu05
        1
    alinwu05  
       2017-12-07 09:36:13 +08:00
    md5 是 PHP 内置的函数
    dwyyy
        2
    dwyyy  
       2017-12-07 09:46:06 +08:00
    lestat
        3
    lestat  
    OP
       2017-12-07 09:47:38 +08:00
    @dwyyy 我看看,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1116 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:40 · PVG 06:40 · LAX 15:40 · JFK 18:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.