关于我的规范,我正在尝试执行以下操作:
BIG中字节数为N的销售计数器从字节0开始 ENDIAN格式存储为二进制补码表示形式(“符号”)。 N对应 编码销售计数器所需的字节数。必须 收入计数器至少使用5个字节/ 40位。
为此,我在C#中创建了以下代码
private static byte[] EncodeUmsatz(long umsatz)
{
// This gives an 8-byte array
byte[] umsatzBytes = BitConverter.GetBytes(umsatz);
// Pad with zeroes to get 16 bytes
int length = 16 * ((umsatzBytes.Length + 15) / 16);
Array.Resize(ref umsatzBytes, length);
// reverse to get big-endian array
Array.Reverse(umsatzBytes, 0, umsatzBytes.Length);
return umsatzBytes;
}
IsLittleEndian
的属性BitConverter
为假。所以这应该是正确的,还是?
但是使用外部工具进行测试
“计算出的销售柜台与加密的销售柜台不匹配(请参见DECRYPTED_TURNOVER_VALUE参数),请检查销售柜台编码(BIG字节序,二进制补码)或使用的AES密钥。”
我不知道我的代码是否用二进制补码表示?
我不是字节专家,所以有人知道我可以尝试的方法
答案 0 :(得分:0)
因此问题得以解决-C#代码对于大字节序是正确的-问题是输入参数的值错误