首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >签名URL的AWS签名

签名URL的AWS签名
EN

Stack Overflow用户
提问于 2015-01-29 16:33:23
回答 1查看 197关注 0票数 0

我遇到了一个关于如何获得签署aws调用所需的签名的.NET示例。

我正在开发一款windows phone 8应用程序,却被线卡住了。

代码语言:javascript
复制
KeyedHashAlgorithm kha = KeyedHashAlgorithm.Create(algorithm);

windows 8似乎没有创建方法,错误如下:

'System.Security.Cryptography.KeyedHashAlgorithm‘不包含创建的定义。

有别的办法解决这个问题吗?

下面是完整的代码片段

代码语言:javascript
复制
public static byte[] HmacSHA256(String data, byte[] key)
 {
     String algorithm = "HmacSHA256";
     KeyedHashAlgorithm kha = KeyedHashAlgorithm.Create(algorithm);
     kha.Key = key;

     return kha.ComputeHash(Encoding.UTF8.GetBytes(data));
 }



static byte[] getSignatureKey(String key, String dateStamp, String      regionName, String serviceName)
    {
        byte[] kSecret = Encoding.UTF8.GetBytes(("AWS4" + key).ToCharArray());
        byte[] kDate = HmacSHA256(dateStamp, kSecret);
        byte[] kRegion = HmacSHA256(regionName, kDate);
        byte[] kService = HmacSHA256(serviceName, kRegion);
        byte[] kSigning = HmacSHA256("aws4_request", kService);

        return kSigning;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-29 16:44:32

您不需要调用Create来创建一个算法的实例,您只需调用new构造具体的类,例如new HMACSHA256()

Create是一种工厂方法,允许您指定要在配置中使用的算法。在台式机和服务器中,可能有多个相同算法的实现(本机、硬件加速等),或者您可能希望给用户选择他们想要的算法的选项。

这只是从.NET中删减手机和Silverlight运行时大小的工作之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28219806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档