簡體   English   中英

使用SHA256的PayFort簽名

[英]PayFort Signature using SHA256

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

我需要一些有關生成PayFort令牌化SHA256簽名的幫助。 鏈接中的示例為您提供了有關如何標記請求的基本指南,但我需要的是有關如何使用密鑰生成SHA256簽名以及如何使用密鑰解密響應簽名的信息。 我擁有請求和響應短語密鑰所需的所有數據。 我不完全了解如何使用C#中的密鑰生成正確的SHA256簽名。 我嘗試了其他示例來生成SHA256簽名,但它返回的簽名不匹配。

PayFort文檔中的示例:

SHA Request Phrase: PASS 
SHA-Type: SHA-256

PASSaccess_code=SILgpo7pWbmzuURp2qrilanguage=enmerchant_identifier=MxvOupuGmerchant_reference=MyReference0001service_command=TOKENIZATIONPASS

如何在C#中正確加密和解​​密它。

任何幫助表示贊賞。

編輯:

我在盲目射擊,熟悉C#的PayFort集成的任何人都可以指導我

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())));
}

首先,您需要將您的簽名生成為字符串。 簽名包括訪問碼,語言等。然后將該簽名轉換為字節。 然后初始化一個sha256Managed對象。 將字節參數傳遞給該對象,這將返回另一個字節,但具有sha256Managed格式。 現在,您需要在foreach中設置其格式。

請找到以下代碼,這將對您有所幫助。

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);
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM