/**
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的瀘縣網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
* 生成簽名
* @param string timestamp 時間戳
* @param string appSecret 合作商開發(fā)者密鑰
* @param string nonce 隨機字符串
* @return string
*/
public String makeSignature (String timestamp,String appSecret,String nonce) {
String[] tmpArr = {timestamp, nonce, appSecret};
// 按值升序排序
Arrays.sort(tmpArr)
// 數(shù)組拼接為字符串
// 調(diào)用md5方法
return signature;
}
其他的都是方法調(diào)用, 根據(jù)需要編寫就行
沒法轉(zhuǎn)的,這個php中調(diào)用了不少外部對象,沒人能猜到那些是什么內(nèi)容的。
php代碼沒幾行,信息量很大,翻譯成java代碼行數(shù)量比較大。僅提供思路和php代碼解釋。
---------------
?php?
$appid?=?"123"; //數(shù)組里面的值,id。
$apikey?=?"456";?//數(shù)組里面的值,為加密密鑰。
$secretKey?="789";?//數(shù)組里面的值,安全密鑰。
$timestamp?=?time();?////數(shù)組里面的值,獲得當前時間。
//UNIX?時間戳(timestamp)是?PHP?中關(guān)于時間日期一個很重要的概念,它表示從?1970年1月1日?00:00:00?到當前時間的秒數(shù)之和。
//echo輸出$timestamp變量值,例如輸出了1389379960
echo?$timestamp;??
//定義數(shù)組。以鍵值對方式存儲。
//'appid'?'apikey'?'secretkey'?'timestamp'是key,鍵。
//$appid?$apikey,?$secretKey?$timestamp是value,值。
$params?=?array('appid'=$appid,?'apikey'=$apikey,?'secretkey'=$secretKey,?'timestamp'=$timestamp);
//對數(shù)組鍵值進行升序排序。排序結(jié)果為apikey?appid?secretkey?timestamp
ksort($params);
//拼接數(shù)組中的參數(shù),并且用encoded編碼。
//http_build_query?--?生成?url-encoded?之后的請求字符串。當數(shù)組沒有寫下標時,就會用第二個參數(shù)結(jié)合當前默認下標當前綴。
//$param_uri變量值,結(jié)果為apikey=456appid=123secretkey=789×tamp=1389379498
$param_uri?=?http_build_query($params,'','');
echo?$param_uri;???//echo輸出結(jié)果為apikey=456appid=123secretkey=789×tamp=1389379498
//先使用調(diào)用hash_hmac方法加密,HMAC-SHA1算法。
//$secretKey為安全密鑰,$param_uri為要加密的明文。'sha1'是HMAC-SHA1算法。
//再調(diào)用base64_encode方法加密,base64_encode?使用?MIME?base64?對數(shù)據(jù)進行編碼。
$sig?=?base64_encode(hash_hmac('sha1',?$param_uri,?$secretKey));
?
java:
1、用hashmap存儲元素,鍵值對方式。
MapString,?String?hashMap?=?new?HashMapString,?String(){
{
put("appid",?"123");
put("apikey",?"456");
put("secretKey",?"789");
put("timestamp",?"當前UNIX?時間戳,秒數(shù),java中獲取");
}????????????
};
2、java中可以通過Timestamp獲得UNIX?時間戳。
3、然后對hashmap進行升序排序。
4、然后寫一個方法遍歷hashmap,拼接成字符串格式為apikey=456appid=123secretkey=789timestamp=1389379498
然后對該字符串進行encoded編碼,輸出格式為apikey=456appid=123secretkey=789×tamp=1389379498
5、通過java中HMAC-SHA1算法加密該字符串,$secretKey為安全密鑰。
6、再通過base64_encode加密第5步產(chǎn)生的字符串。這是最終sig結(jié)果。
本文題目:php網(wǎng)站改java代碼 網(wǎng)頁開發(fā)php還是java
文章位置:http://jinyejixie.com/article20/hpdjjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、網(wǎng)站收錄、商城網(wǎng)站、移動網(wǎng)站建設(shè)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)