当前位置:论坛首页 > Linux面板 > 求助

【已回应】宝塔Api接口签名用Java咋签名这个参数request_token

发表在 Linux面板2019-4-17 16:04 [复制链接] 4 1367

java的md5加密方法死活对不上。
官方能出个算法吗?


这是php的
/**
     * 构造带有签名的关联数组
     */
          private function GetKeyData(){
                  $now_time = time();
            $p_data = array(
                        'request_token'        =>        md5($now_time.''.md5($this->BT_KEY)),
                        'request_time'        =>        $now_time
                );
            return $p_data;   
    }

使用道具 举报 只看该作者 回复
发表于 2019-4-17 16:39:54 | 显示全部楼层
471729998
您好,欢迎进入开发者群进行讨论。
使用道具 举报 回复 支持 反对
发表于 2019-4-17 16:56:36 | 显示全部楼层
签名方法搞定了
/**
* @Author: XR高端网站建设
* @CreateDate: 19-4-17 下午3:51$
* @Version: 1.0
* @QQ:1261573829
*/
import java.security.MessageDigest;

public class MD5Utils {

    private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};

    /**
     * MD5加密
     * @param origin 字符
     * @param charsetname 编码
     * @return
     */
    public static String MD5Encode(String origin, String charsetname){
        String resultString = null;
        try{
            resultString = new String(origin);
            MessageDigest md = MessageDigest.getInstance("MD5");
            if(null == charsetname || "".equals(charsetname)){
                resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
            }else{
                resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
            }
        }catch (Exception e){
        }
        return resultString;
    }


    public static String byteArrayToHexString(byte b[]){
        StringBuffer resultSb = new StringBuffer();
        for(int i = 0; i < b.length; i++){
            resultSb.append(byteToHexString(b[i]));
        }
        return resultSb.toString();
    }

    public static String byteToHexString(byte b){
        int n = b;
        if(n < 0){
            n += 256;
        }
        int d1 = n / 16;
        int d2 = n % 16;
        return hexDigIts[d1] + hexDigIts[d2];
    }

    public static void main(String[] args) {
        String password = "MM4S7NHzUbb2H1YhzbMux4Fk4JxP3v45";
        String password2 =MD5Encode(password,"utf8");
        String password3 =MD5Encode("1555486123"+password2,"utf8");
        System.out.println(password3);
    }


}
使用道具 举报 回复 支持 反对
发表于 2019-4-18 09:41:25 | 显示全部楼层
java版的md5这么麻烦啊,php只需要md5()就行了
使用道具 举报 回复 支持 反对
发表于 2019-5-2 11:12:23 | 显示全部楼层
大炮运维V587 发表于 2019-4-17 16:39
471729998
您好,欢迎进入开发者群进行讨论。

群加不了呢。方便拉我进群不?
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表