私のscalaplayアプリケーションでコンシューマーシークレット/キーのペアを作成しようとしていますが、正しく機能させることができないようです。私は次のコードを持っています
import org.apache.commons.codec.binary.Base64
import javax.crypto.{KeyGenerator, Mac, SecretKey}
import javax.crypto.spec.SecretKeySpec
def hmacSha1(baseString:String) : String = {
val MAC_NAME = "HmacSHA1"
val keygen = KeyGenerator.getInstance(MAC_NAME);
val macKey = keygen.generateKey();
val mac = Mac.getInstance(MAC_NAME);
val secret = new SecretKeySpec(macKey.getEncoded(), mac.getAlgorithm());
mac.init(secret);
val digest = mac.doFinal(s.getBytes());
val result= new binary.Base64().encode(digest)
result.toString
}
しかし、「Anthony」のようなもののbaseStringを追加すると、常に次のような文字列が返されます
"[B@2008bf02"
私はこのようなものを手に入れたいと思っていました
“w/FdJ7y1qwe3HX/VmPiACTn01Zc=“