如何在基于 Java 的 Android 中使用 SECRET KEY 制作 HMAC SHA256?

问题描述

我已经在很多文章和开发者环境中搜索过这个问题,但我卡住了。

我正在寻找如何在 Android Java 中将 String 转换为 HMAC-SHA256。

我的 PHP 代码

$data = "Help";
$secret = "A5D!@#";
$key = hash_hmac('sha256',$data,$secret);
echo $key;

// the key is = ede672d9979a804d7a480e511ba556d506d41a1af5959155db208a0416093c7c

我真的很困惑如何在 Android 中将字符串转换为 HMAC SHA256。是否可以在 Android(基于 Java)中进行?

感谢阅读这个问题,希望有人能帮助我。我真的很感激,如果有人可以帮我解决这个问题。

#XOXO

解决方法

是的,这在 android(java) 中是可能的。 $data = "Help" 是您的字符串吗?我不确定。如果是这样,您可以按照代码进行操作,这或多或少类似于您的 PHP 代码。

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

    ... ... ...

    String data = "Hello";
    String secret = "A5D!@#";
     

    Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
    SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(),"HmacSHA256");
    sha256_HMAC.init(secret_key);

    String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(data.getBytes()));