1

このMD5呼び出しには、「MD5」、文字列、および$transaction_keyの3つの引数があります。

hash_hmac("md5", $api_login_id . "^" . $fp_sequence . "^" . $fp_timestamp . "^" . $amount . "^", $transaction_key);

これをScalaでどのように再現しますか?「キー」を取るMD5関数が見つかりません。

4

1 に答える 1

8

これがこのJavaの答えから派生したScalaバージョンです:

def encode(message: String, key: String) = {
  val mac = javax.crypto.Mac.getInstance("HmacMD5")
  mac.init(new javax.crypto.spec.SecretKeySpec(key.getBytes, "HmacMD5"))
  mac.doFinal(message.getBytes).map("%02x".format(_)).mkString
}

hash_hmacいくつかの簡単なテストで、PHPと同じ出力が生成されます。

于 2012-07-05T19:39:14.093 に答える