因業(yè)務(wù)需求,php項(xiàng)目對(duì)接一個(gè)java的api 用到了SHA-256 簽名和延簽,和java同學(xué)一起研究了下php和java的SHA-256 簽名和延簽,分享下操作:
java demo如下:
public class SignUtils {
public static String toSign(String data, String salt) {
String s = data + salt;
byte[] sign;
try {
sign = SHA256.Digest.getInstance("SHA-256").digest(s.getBytes(Charset.forName("UTF-8")));
byte[] signBase = Base64.getEncoder().encode(sign);
return new String(signBase,Charset.forName("UTF-8"));
} catch (Exception e) {
throw new Exception("簽名異常!");
}
}
}
String text = "lwy";
String salt = "lwy20190803";
String signData = SignUtils.toSign(text, salt);
System.ount.println(signData);
輸出:QXulYxjtlJ1e/hEaeTKSjnSY8Xf37GuLRwAsnkEWN94=
php demo如下:
class SignUtils{
public static function toSign($data,$salt){
$string = $data.$salt;
$data = hash('sha256', $string);
return base64_encode(hex2bin($data));
}
}
$sign = new SignUtils();
$salt = "lwy20190803";
$str = "lwy";
$signData = $sign->toSign($str,$salt);
echo "
簽名串:",$str.$salt;
echo "
簽名結(jié)果:",$signData;
輸出結(jié)果:
簽名串:lwylwy20190803
簽名結(jié)果:QXulYxjtlJ1e/hEaeTKSjnSY8Xf37GuLRwAsnkEWN94=
本demo感謝亞博大哥一步步幫忙調(diào)試。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。