- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在用 Java 执行以下操作时遇到问题。以下是我正在使用的工具文档中的 Fantom 代码。
// compute salted hmac
hmac := Buf().print("$username:$userSalt").hmac("SHA-1", password.toBuf).toBase64
// now compute login digest using nonce
digest := "${hmac}:${nonce}".toBuf.toDigest("SHA-1").toBase64
// our example variables
username: "jack"
password: "pass"
userSalt: "6s6Q5Rn0xZP0LPf89bNdv+65EmMUrTsey2fIhim/wKU="
nonce: "3da210bdb1163d0d41d3c516314cbd6e"
hmac: "IjJOApgvDoVDk9J6NiyWdktItl0="
digest: "t/nzXF3n0zzH4JhXtihT8FC1N3s="
我一直在通过 Google 搜索各种示例,但没有一个产生文档声称应返回的结果。
有 Fantom 知识的人可以验证文档中的示例是否正确吗?
至于Java方面,这是我最近的尝试
public static String hmacSha1(String value, String key) {
try {
// Get an hmac_sha1 key from the raw key bytes
byte[] keyBytes = key.getBytes("UTF-8");
SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA1");
// Get an hmac_sha1 Mac instance and initialize with the signing key
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(signingKey);
// Compute the hmac on input data bytes
byte[] rawHmac = mac.doFinal(value.getBytes("UTF-8"));
// Convert raw bytes to Hex
byte[] hexBytes = new Hex().encode(rawHmac);
// Covert array of Hex bytes to a String
return new String(hexBytes, "UTF-8");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
但是,当我调用带有以下参数的方法时
jack:6s6Q5Rn0xZP0LPf89bNdv+65EmMUrTsey2fIhim/wKU=
pass
我明白了
22324e02982f0e854393d27a362c96764b48b65d
最佳答案
不确定文档的来源 - 但它们可能已过时 - 或者是错误的。我实际上会运行 Fantom 代码作为您的引用,以确保您正在测试正确的东西;)
您可以查看 sys::Buf.hmac 的 Java 源代码:MemBuf.java
我还建议将 3 个转换分开。确保您的原始字节数组在 Fantom 和 Java 中都匹配,然后验证摘要匹配,最后验证 Base64 编码。更容易验证代码中的每个阶段。
关于使用 SHA1 的 Fantom HMAC 的 Java 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6685727/
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
我正在尝试将 Fantom 中的对象动态转换为运行时选择的所需类型。 Type type := Int# Obj n := 1 as Obj echo((n as type).toStr) 这是一个简
在现在出现的众多jvm语言中,有一种似乎特别吸引人 看看 http://fantom.org/doc/docIntro/Tour.html 我只是想知道,当忽略动态类型特性时,生成的字节码是否在性能上
大家。我在使用 Google 登录时遇到一个错误。首先我确实喜欢一些tutorial .并且有这个异常(exception)。使用 Android Studio,所以我制作了示例新(!)项目(Andr
我最近开始使用 Fantom .我有一个包含资源的 jar 文件(在本例中为 svg 图像)。我可以很好地使用 jar 中的类,但资源不会加载:Thread.currentThread().getCo
我们遇到一些流行网站的登录屏幕,其中用户名文本框中写有淡灰色的用户名。我想知道这可以在java swings中实现吗? I have theories, implementing by mouseEv
我正在使用 Fanbatis 框架访问 MySQL 数据库。此处的文档:http://www.talesframework.org/fanbatis/说我可以使用 @Column 注释将类属性映射到具
Fantom 支持 provably immutable类。知道一个类是不可变的,编译器的优点必须很多,其中最重要的是可以保证在 actor 之间传递的消息是不可变的。 Fantom 的方法看起来很简
我在用 Java 执行以下操作时遇到问题。以下是我正在使用的工具文档中的 Fantom 代码。 // compute salted hmac hmac := Buf().print("$usernam
我正在尝试连接到 MongoLab 中托管的远程 MongoDB v3.0.8使用 Fantom v1.0.67 脚本。我使用的驱动程序是 afMongo v1.0.4。连接线是: mongoClie
通过 scala-lang.org 下载 Scala 的首选方式是什么,是否可以通过 Eclipse IDE 直接添加或如何将 Scala 添加到 Eclipse IDE?是否有关于如何添加 JVM
我制作了一个网站并在每个浏览器中查看它。所有浏览器都可以,但 Android 不行。 在约 30% 的网站高度之后,白色覆盖层一直延伸到页面末尾。 此错误会出现在每个 Android 浏览器中,例如
我是一名优秀的程序员,十分优秀!