JavaとphpでHMAC256→Base64の結果を合わせる
■Java
public static String getHmac256Base64() throws Exception {
String signatureKey = "1ABCDEF3HIJKL2MNOP5RS"; // 暗号化キー
String target = "targetString"; // 対象文字列
// 秘密鍵の作成
SecretKey secretKey = new SecretKeySpec(signatureKey.getBytes("UTF-8"),"HmacSHA256");
// hmac256
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(secretKey);
mac.update(target.getBytes("UTF-8"));
byte[] encData = mac.doFinal();
// PHPの形式に合わせる
StringBuffer stringBuffer = new StringBuffer();
for (byte b : encData) {
stringBuffer.append(String.format("%02x", b));
}
String hmac256String = stringBuffer.toString();
// base64エンコード
byte[] encBase64 = Base64.encodeBase64(hmac256String.getBytes("UTF-8"));
return new String(encBase64);
}
■PHP
<?php
echo base64_encode( hash_hmac('sha256', 'targetString', '1ABCDEF3HIJKL2MNOP5RS',false ));
?>
public static String getHmac256Base64() throws Exception {
String signatureKey = "1ABCDEF3HIJKL2MNOP5RS"; // 暗号化キー
String target = "targetString"; // 対象文字列
// 秘密鍵の作成
SecretKey secretKey = new SecretKeySpec(signatureKey.getBytes("UTF-8"),"HmacSHA256");
// hmac256
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(secretKey);
mac.update(target.getBytes("UTF-8"));
byte[] encData = mac.doFinal();
// PHPの形式に合わせる
StringBuffer stringBuffer = new StringBuffer();
for (byte b : encData) {
stringBuffer.append(String.format("%02x", b));
}
String hmac256String = stringBuffer.toString();
// base64エンコード
byte[] encBase64 = Base64.encodeBase64(hmac256String.getBytes("UTF-8"));
return new String(encBase64);
}
■PHP
<?php
echo base64_encode( hash_hmac('sha256', 'targetString', '1ABCDEF3HIJKL2MNOP5RS',false ));
?>
コメント
コメントを投稿