使用命令行的Openssl-SHA256(Base-64)

使用命令行的Openssl-SHA256(Base-64),openssl,Openssl,我必须将字符串的哈希总数添加到文件中。散列总数为SHA-256(Base-64) 字符串流如下所示: Transaction Type|External System Reference Number|Original External System Reference|Account title|SAP Company Number|Payment Currency|Payment Amount|Trade / Posting Date|Settlement Date|Client Acco

我必须将字符串的哈希总数添加到文件中。散列总数为SHA-256(Base-64)

字符串流如下所示:

 Transaction Type|External System Reference Number|Original External System Reference|Account title|SAP Company Number|Payment Currency|Payment Amount|Trade / Posting Date|Settlement Date|Client Account (SAP)|Client Number (SAP)|Benficiarys bank sort code|Beneficiarys bank swift code|Beneficiarys Bank Line 1|Beneficiarys Bank Line 2|Intermediary Bank|Intermediary swift code|FX Rate|Beneficiary Customer|Beneficiary Account Number|Beneficiary’s Bank Country|Resereved for future use|Creation Date / Time|Payment Details|Bank to Bank Info|Payment Charges|Ordering Customer|File Origination Code|Resereved for future use|Charge account|Resereved for future use|Resereved for future use|Resereved for future use
FCYOut|TESTREF000101||A Company Limited|GB0010001|EUR|0000000663.75|20130327|20130402|10000001|90023562||SBZAZAJJXXX|Standard Bank Joburg|Sandton Joburg||||John Smith|1010102356|ZA||20130327163043|Invoice 23B|Branch code 234234|SHA||XXXX|||||
SqL7nAwQ/Y+2LXXfLaX25CtfSjoShY9+FCRZp5jcGO0=
当我使用下面的命令进行哈希合计时

echo -n $txt | openssl dgst -binary -sha256 | openssl base64
它给出的值如下所示:

 Transaction Type|External System Reference Number|Original External System Reference|Account title|SAP Company Number|Payment Currency|Payment Amount|Trade / Posting Date|Settlement Date|Client Account (SAP)|Client Number (SAP)|Benficiarys bank sort code|Beneficiarys bank swift code|Beneficiarys Bank Line 1|Beneficiarys Bank Line 2|Intermediary Bank|Intermediary swift code|FX Rate|Beneficiary Customer|Beneficiary Account Number|Beneficiary’s Bank Country|Resereved for future use|Creation Date / Time|Payment Details|Bank to Bank Info|Payment Charges|Ordering Customer|File Origination Code|Resereved for future use|Charge account|Resereved for future use|Resereved for future use|Resereved for future use
FCYOut|TESTREF000101||A Company Limited|GB0010001|EUR|0000000663.75|20130327|20130402|10000001|90023562||SBZAZAJJXXX|Standard Bank Joburg|Sandton Joburg||||John Smith|1010102356|ZA||20130327163043|Invoice 23B|Branch code 234234|SHA||XXXX|||||
SqL7nAwQ/Y+2LXXfLaX25CtfSjoShY9+FCRZp5jcGO0=
但当我将其发送给另一方时,他们在解密后得到了错误的信息:

他们希望上述示例消息的加密字符串如下

1EjGezzIXFT+/QvXUuK1juo8rUJGuymRmUnXgA8OzA8=

谁能帮帮我这里怎么了?我希望值与另一方输出相同

编码是
UTF8
,没有行分隔符。下面是我用来测试的C代码:

SHA256 sha = new SHA256Managed();
StringBuilder sbTest = new StringBuilder();
sbTest.Append("Transaction Type|External System Reference Number|Original External System Reference|Account title|SAP Company Number|Payment Currency|Payment Amount|Trade / Posting Date|Settlement Date|Client Account (SAP)|Client Number (SAP)|Benficiarys bank sort code|Beneficiarys bank swift code|Beneficiarys Bank Line 1|Beneficiarys Bank Line 2|Intermediary Bank|Intermediary swift code|FX Rate|Beneficiary Customer|Beneficiary Account Number|Beneficiary’s Bank Country|Resereved for future use|Creation Date / Time|Payment Details|Bank to Bank Info|Payment Charges|Ordering Customer|File Origination Code|Resereved for future use|Charge account|Resereved for future use|Resereved for future use|Resereved for future use");
sbTest.Append("FCYOut|TESTREF000101||A Company Limited|GB0010001|EUR|0000000663.75|20130327|20130402|10000001|90023562||SBZAZAJJXXX|Standard Bank Joburg|Sandton Joburg||||John Smith|1010102356|ZA||20130327163043|Invoice 23B|Branch code 234234|SHA||XXXX|||||");

string str = sbTest.ToString();
byte[] data = sha.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
    sBuilder.Append(data[i].ToString("x2"));
}

string base64String = Convert.ToBase64String(data);
Console.WriteLine(base64String);
SHA256 sha=新的SHA256Managed();
StringBuilder sbTest=新的StringBuilder();
sbTest.Append(“交易类型|外部系统参考号|原始外部系统参考号|账户名称| SAP公司编号|支付货币|支付金额|交易/过账日期|结算日期|客户账户(SAP)|客户编号(SAP)|Benficiarys银行分类代码|受益人银行swift代码|受益人银行行1 |受益人银行行2 |中间银行|中间银行swift代码|汇率|受益人客户|受益人账号|受益人银行国家|保留以备将来使用|创建日期/时间|付款详细信息|银行间信息|付款费用|订购客户|File来源代码|预留供将来使用|收费账户|预留供将来使用|预留供将来使用|预留供将来使用“);
测试测试。附加(“FCYOut |测试测试参考0000101 |美国一家股份有限有限有限有限有限公司,GB0010001 1241000欧元,0000000 663.75 | 20130327 124政政协测试。追加(“FCYOut 124你们你们们124你们们124你们们124你们们)测试测试测试测试。测试测试测试测试测试。附加(“FC你们们你们们你们你们们你们们政政政政政政政政政政政协协)0 0 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6.7.7.7.7.7.7.7.7 7.75 1243.75 12433.75 1243.75 1243.75 1243.75 1244124412441243.75 1243.75 124;2010 2010日日124;2010 2010 2010 2010 2010 1240;”;
字符串str=sbTest.ToString();
byte[]data=sha.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder sBuilder=新StringBuilder();
for(int i=0;i