導航:首頁 > 編程語言 > phpjavasha1

phpjavasha1

發布時間:2023-03-05 03:30:49

⑴ 一段java代碼轉php代碼,求高手

utf8編碼試試:utf8_encode()

即:

utf8_encode($stringToSign)

⑵ php 如何實現 java的sha1加密

function
encryptTokey($data){
$apikey
=
'testapikey111';
$ps1
=
sha1($apikey
.
strtolower($data));
$ps1
=
strtoupper($ps1);
$s1
=
implode(str_split($ps1,
2),
'-');
$ps2
=
md5($s1
.
$apikey);
$ps2
=
strtoupper($ps2);
$token
=
implode(str_split($ps2,
2),
'-');
return
$token;
}
echo
encryptTokey('testdata');
運行結果:
68-10-98-74-4C-82-74-4B-CC-49-31-98-46-02-EE-8E
詳細你可以去後盾人看看,這些都是後盾人裡面的,哪裡有詳細的視頻教學都是高質量,我自己就是在裡面學的。

⑶ 求教PHP和JAVA大神 base64_encode(hash_hmac('sha1',$public_key,$private_key,TRUE)); 轉 java

如果你的API服務安全認證協議中要求使用hmac_sha1方法對信息進行編碼,

而你的服務是由PHP實現的,客戶端是由JAVA實現的,那麼為了對簽名正確比對,就需要在兩者之間建立能匹配的編碼方式.
efine('ID','123456');
define('KEY','k123456');

$strToSign = "test_string";

$utf8Str = mb_convert_encoding($strToSign, "UTF-8");
$hmac_sha1_str = base64_encode(hash_hmac("sha1", $utf8Str, KEY));
$signature = urlencode($hmac_sha1_str);
print_r($signature);

JAVA側需要注意如下幾點:
1. hmac_sha1編碼結果需要轉換成hex格式

2. java中base64的實現和php不一致,其中java並不會在字元串末尾填補=號以把位元組數補充為8的整數
3. hmac_sha1並非sha1, hmac_sha1是需要共享密鑰的

參考實現如下:
[java] view plain
import java.io.UnsupportedEncodingException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.wicket.util.crypt.Base64UrlSafe;

public class test {
public static void main(String[] args) {
String key = "";
String toHash = "GET"+"\n"+"Thu, 09 Aug 2012 13:33:46 +0000"+"\n"+"/ApiChannel/Report.m";
//String toHashUtf8 = URLEncoder.encode(toHash, "UTF-8");
String res = hmac_sha1(toHash, key);
//System.out.print(res+"\n");

String signature;
try {
signature = new String(Base64UrlSafe.encodeBase64(res.getBytes()),"UTF-8");
signature = appendEqualSign(signature);
System.out.print(signature);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

public static String hmac_sha1(String value, String key) {
try {
// Get an hmac_sha1 key from the raw key bytes
byte[] keyBytes = key.getBytes();
SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA1");

// Get an hmac_sha1 Mac instance and initialize with the signing key
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(signingKey);

// Compute the hmac on input data bytes
byte[] rawHmac = mac.doFinal(value.getBytes());

// Convert raw bytes to Hex
String hexBytes = byte2hex(rawHmac);
return hexBytes;
} catch (Exception e) {
throw new RuntimeException(e);
}
}

private static String byte2hex(final byte[] b){
String hs="";
String stmp="";
for (int n=0; n<b.length; n++){
stmp=(java.lang.Integer.toHexString(b[n] & 0xFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
}
return hs;
}

private static String appendEqualSign(String s){
int len = s.length();
int appendNum = 8 - (int)(len/8);
for (int n=0; n<appendNum; n++){
s += "%3D";
}
return s;
}
}

參考:http://www.iteye.com/topic/1002652

⑷ php CA加密和JAVA通信

PHP的RSA簽名和驗簽方法

  1. 簽名方法

  2. openssl_sign($msg, $sign, $ key, OPENSSL_ALGO_SHA1);

  3. $msg:要簽名的字元串。

  4. $sign:做好簽名字元串。

不可以寫成 $sign = openssl_sign($msg, $sign, $ key, OPENSSL_ALGO_SHA1);

$ key:密鑰,密鑰格式,必須為rsa_private_key.pem的格式。

OPENSSL_ALGO_SHA1:密鑰演算法,如果與Java等交互,必須相互配對。

2. 驗簽方法

$result= openssl_verify($msg, $sign, $key);

$msg:簽名的原字元串。

$sign:簽名字元串。

$ key:密鑰,密鑰格式,必須為rsa_private_key.pem的格式。

$result:驗簽結果;為1時,驗簽正確;其餘失敗。

⑸ PHP代碼變成java代碼

java:
1、用hashmap存儲元素,鍵值對方式。
Map<String, String> hashMap = new HashMap<String, String>(){
{
put("appid", "123");
put("apikey", "456");
put("secretKey", "789");
put("timestamp", "當前UNIX 時間戳,秒數,java中獲取");
}
};

2、java中可以通過Timestamp獲得UNIX 時間戳。
3、然後對hashmap進行升序排序。
4、然後寫一個方法遍歷hashmap,拼接成字元串格式為apikey=456&appid=123&secretkey=789×tamp=1389379498
然後對該字元串進行encoded編碼,輸出格式為apikey=456&appid=123&secretkey=789×tamp=1389379498
5、通過java中HMAC-SHA1演算法加密該字元串,$secretKey為安全密鑰。
6、再通過base64_encode加密第5步產生的字元串。這是最終sig結果。

閱讀全文

與phpjavasha1相關的資料

熱點內容
怎麼買賣副圖源碼 瀏覽:660
廣東農信app怎麼更改預留手機號碼 瀏覽:777
嵌套頁面php 瀏覽:566
安卓手機怎麼調到微信聊天模式 瀏覽:857
java博客開源系統 瀏覽:719
男人之間的加密對話日語 瀏覽:359
怎麼連遠程連接伺服器 瀏覽:11
安卓二手手機該如何檢測 瀏覽:213
微信可以共享圖片文件夾嗎 瀏覽:80
聯通wifi加密碼 瀏覽:643
錄屏文件夾小米 瀏覽:548
車上的app怎麼重設 瀏覽:24
指定文件夾屬性 瀏覽:131
linuxphp編程 瀏覽:337
以下不正確的是雲伺服器 瀏覽:909
琉璃神社壓縮密碼 瀏覽:715
大一學生解壓視頻 瀏覽:376
單位電腦e盤加密輸入正確密碼 瀏覽:873
phpfileupload 瀏覽:634
刑拘程序員 瀏覽:617