首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SHA256的PayFort签名

使用SHA256的PayFort签名
EN

Stack Overflow用户
提问于 2018-09-10 15:24:47
回答 1查看 702关注 0票数 1

https://docs.payfort.com/docs/in-common/build/index.html#create-signature-value

我需要一些关于为PayFort令牌化生成SHA256签名的帮助。链接中的示例为您提供了有关如何标记请求的基本指南,但我需要的是有关如何使用密钥生成SHA256签名和使用密钥解密响应签名的信息。我有请求和响应释义关键字所需的所有数据。我不太明白如何在C#中使用私钥生成正确的SHA256签名。我尝试了不同的例子来生成SHA256签名,但它返回签名不匹配。

PayFort文档中的示例:

代码语言:javascript
复制
SHA Request Phrase: PASS 
SHA-Type: SHA-256

PASSaccess_code=SILgpo7pWbmzuURp2qrilanguage=enmerchant_identifier=MxvOupuGmerchant_reference=MyReference0001service_command=TOKENIZATIONPASS

如何在C#中正确地加密和解密它。

任何帮助都是非常感谢的。

编辑:

我在盲目地射击,任何熟悉PayFort与C#集成的人都可以指导我

代码语言:javascript
复制
public static String Sign(String data, String key)
{
    KeyedHashAlgorithm algorithm = new HMACSHA256();
    Encoding encoding = new UTF8Encoding();
    algorithm.Key = encoding.GetBytes(key);
    return Convert.ToBase64String(algorithm.ComputeHash(
        encoding.GetBytes(data.ToCharArray())));
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-21 15:41:10

首先,您需要将签名生成为字符串。签名包括访问码、语言等。然后将签名转换为字节。然后初始化一个sha256Managed对象。将字节参数传递给该对象,这将返回另一个字节,但格式为sha256Managed。现在您需要在foreach中设置它的格式。

请找到下面的代码,这将帮助您解决问题。

代码语言:javascript
复制
byte[] bytes = Encoding.UTF8.GetBytes(signature);
            SHA256Managed hashstring = new SHA256Managed();
            byte[] hash = hashstring.ComputeHash(bytes);
            string hashString = string.Empty;
            foreach (byte x in hash)
            {
                hashString += String.Format("{0:x2}", x);
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52252944

复制
相关文章

相似问题

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