适用于 Adob​​e AIR(桌面)的 AS3 HMAC SHA-256

2024-01-03

在 Actionscript 3 中,我需要使用密钥(字符串,utf-8)计算数据(字符串,utf-8)。

  1. 这是数据(字符串)“symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559”

  2. 这是秘密密钥(字符串)“NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j”

  3. 这是它必须输出的结果(字符串)“c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71”

有人可以解决这个问题吗? (结果是正确的,但我不知道得出结果的代码)。

这是我到目前为止所尝试过的:

// THE DATA
var dataToEncode:String = "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559";
var byteArrayOfDataToEncode:ByteArray = new ByteArray();
byteArrayOfDataToEncode.writeUTF(dataToEncode); // we write the string into the ByteArray
                    
// THE SECRET KEY
var secretKey:String = "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j";
var byteArrayOfSecretKey:ByteArray = new ByteArray();
byteArrayOfSecretKey.writeUTF(secretKey); // we write the secret key into the ByteArray
                    
// WE COMPUTE THE SIGNATURE
var HMAC_SHA256:HMAC = new HMAC(new SHA256());
var byteArrayOfResultSignature:ByteArray = HMAC_SHA256.compute(byteArrayOfSecretKey, byteArrayOfDataToEncode);                  
var resultSignature:String = byteArrayOfResultSignature.readUTF();
                    
// WE SHOW THE RESULT SIGNATURE
trace("The result signature is: "+resultSignature);

此 HMAC 类是使用此库 (AS3Crypto) 创建的:https://github.com/Atmosphere/ActionScript/blob/master/src/com/hurlant/crypto/hash/HMAC.as https://github.com/Atmosphere/ActionScript/blob/master/src/com/hurlant/crypto/hash/HMAC.as


感谢评论者,我找到了答案。

解决方案是 com.adobe.crypto 。

As3corelib中有一个类(你可以在这里下载https://code.google.com/archive/p/as3corelib/downloads https://code.google.com/archive/p/as3corelib/downloads)。您必须通过转到“文件-> Actionscript 设置”来导入这些文件夹,然后单击源路径,然后在其中添加“com”文件夹。

你还需要下载Adobe Flex SDK(因为As3corelib中的一些类使用了Flex SDK中的一些实用类),解压它,然后包含framework.swc文件(在adobe flex的文件夹中搜索,它在Frameworks/libs 文件夹),转到“文件-> Actionscript 设置”,然后单击库路径,然后在其中添加 Framework.swf。

现在你已经准备好这样做了,如下所示:

import com.adobe.crypto.*; // import this, to have access to the classes we need.

// then this code where you need it
var message:String = "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559";
var secretKey:String = "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j";
                    
var signature:String = HMAC.hash(secretKey, message, SHA256) ;
                    
trace("The signature is: "+signature);

希望它有帮助,祝你有美好的一天!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 Adob​​e AIR(桌面)的 AS3 HMAC SHA-256 的相关文章

随机推荐