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

Posted

技术标签:

【中文标题】如何在基于 Android 的 Java 中使用 SECRET KEY 制作 HMAC SHA256? [复制]【英文标题】:How to make HMAC SHA256 with SECRET KEY in Android Java Based? [duplicate] 【发布时间】:2021-05-05 20:44:41 【问题描述】:

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

我正在搜索如何在 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

【问题讨论】:

【参考方案1】:

是的,这在 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()));

【讨论】:

以上是关于如何在基于 Android 的 Java 中使用 SECRET KEY 制作 HMAC SHA256? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在跨平台应用程序中处理基于 UI 的导航?

如何开发基于测验的android应用程序[关闭]

我们如何在 Android 中使用 FirestoreRecyclerAdapter 实现基于日期的文档分组

如何在基于 Java 的应用服务器上使用 GCM 向 iOS 设备发送推送通知

在android开发中如何使用JavaMail程序

Android/Java:如何根据本地化设置编写 if 语句? [关闭]