如何在基于 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? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Android 中使用 FirestoreRecyclerAdapter 实现基于日期的文档分组