com.ctrip.utils.SignatureUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.ctrip.utils.SignatureUtils.java

Source

/*
 * @(#)SignatureUtils.java $version 2014126
 *
 * Copyright 2014 NHN China. All rights Reserved.
 * NHN China PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package com.ctrip.utils;

import java.security.NoSuchAlgorithmException;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * nhn ctrip-api
 * com.ctrip.utils.SignatureUtils.java
 * @author CN40101
 * @date 2014126
 */
public class SignatureUtils {

    /**
     * getTimestamp
     * @return
     */
    public static String getTimestamp() {
        return String.valueOf(System.currentTimeMillis() / 1000);
    }

    /**
     * Signature=Md5(TimeStamp+AllianceID+MD5().ToUpper()+SID+RequestType).ToUpper()
     * 
     * ??
     * abcdefg123456
     * MD5?5393E07F94A25AAA373DBD3FA257BD3A
     * 
     * ???
     * AllianceID =1& SID =50& TimeStamp =1234567890&RequestType=OTA_Ping
     * 
     * Signature=Md5(TimeStamp+AllianceID+MD5().ToUpper()+SID+RequestType).ToUpper()
     *          =MD5(123456789015393E07F94A25AAA373DBD3FA257BD3A50OTA_Ping)
     *          =EF5FBA4AAB36FD044F8A13BA0D63DD13
     * 
     * @param timestamp - 1970
     * @param allianceId - ????
     * @param secretKey - APIKey??
     * @param sid - ?ID??
     * @param requestType - ????OTA_Ping
     * @return
     */
    public static String getSignature(String timestamp, String allianceId, String secretKey, String sid,
            String requestType) {
        return DigestUtils.md5Hex(new StringBuffer().append(timestamp).append(allianceId)
                .append(DigestUtils.md5Hex(secretKey).toUpperCase()).append(sid).append(requestType).toString())
                .toUpperCase();
    }

    public static void main(String[] args) throws NoSuchAlgorithmException {
        System.out.println(DigestUtils.md5Hex("abcdefg123456").toUpperCase());
        System.out.println(SignatureUtils.getSignature("1234567890", "1", "abcdefg123456", "50", "OTA_Ping"));
    }
}